J'essaie d'obtenir des commentaires d'un autre post. Je reçois le post_id et vérifie s'il contient des commentaires.
Je peux obtenir les commentaires pour le message actuel à chaque fois, mais pour l'autre message, j'obtiens des résultats mitigés (je l'ai obtenu mais je ne parviens pas à reproduire les résultats).
Voici le code sur lequel je travaille avec quelques tentatives alternatives commentées:
if(get_comments_number($getLangsPostID) > 0){
//echo "<pre>This post id is ".$thisPostID." The other language post id is (".$getLangsPostID."):";
//var_dump($getLangsPostID);
$altLangReq = array(
'post_id' => $getLangsPostID // have tried with and without trailing comma
);
//$langComments = get_comments($altLangReq);
$langComments = get_comments('post_id='.$getLangsPostID);
echo "<p>Current post ($thisPostID), request for post id (".$getLangsPostID.") is:<pre>";
var_dump($langComments);
//$x = get_comments('post_id=31'); // hard coded also fails
$x = get_comments(array('post_id'=>31));
var_dump($x);
echo "</pre></p>";
Si cela compte, j'utilise polylang et j'essaie de montrer les commentaires de toutes les variantes linguistiques sur chaque langue. J'utilise deux articles (id 21 et 31) qui ont 3 ou 4 commentaires chacun (ils sont trouvés par get_comments_number.
De plus, je suis en dehors de la boucle de commentaires sur le modèle comments.php dans le thème de soulignement légèrement personnalisé.
Modifier:
Quelques éclaircissements, je voulais décrire la plupart des conditions car il y avait un autre facteur, mais fondamentalement, si j'appelle:
var_dump(get_comments('post_id=21')); // 21 is the current post
Je reçois les commentaires des publications actuelles, si j'appelle:
var_dump(get_comments('post_id=31')); // 31 is a different post
Je reçois un tableau vide, si je vais à post 31, puis 31 fonctionne et 21 renvoie un tableau vide mais cela semble être le moyen d'appeler des publications autres que l'actuel (via le post_id). Voir le premier exemple dans le WP codex
Edit 2 Réponse: (J'ajoute ceci pour l'instant car je ne peux pas répondre à ma propre question pendant 8 heures à un guichet automatique)
Il s'avère que c'était le plugin de langue ... Lorsque j'appelle les commentaires, il ajoute un filtre de langue:
'lang' => $currentLang
Je devais donc explicitement passer outre cela:
get_comments(array('post_id'=>31, 'lang' => $targetLang));
Je ne sais toujours pas pourquoi j'ai parfois pu obtenir les autres commentaires sans cela.
Il s’est avéré que c’était mon utilisation du plugin de langage (polylang) ... Lorsque j’appelle les commentaires, il ajoute un filtre de langage:
'lang' => $currentLang
Je devais donc explicitement passer outre cela:
get_comments(array('post_id'=>31, 'lang' => $targetLang));
Je ne sais toujours pas pourquoi j'ai parfois pu obtenir les autres commentaires sans cela.