web-dev-qa-db-fra.com

L'identifiant personnalisé de disqus ne change pas correctement la valeur par défaut

J'ai plusieurs pages qui font toutes partie du même sujet et j'aimerais qu'elles utilisent le même fil de commentaires sur Disqus. J'utilise le code suivant pour extraire l'identifiant personnalisé d'un champ personnalisé:

<?php
    //Attempt to get identifier
    $disqus = get_post_meta($post->ID, 'disqusid', true);
    //if isset & not blank else use $post->ID
    $disqus = (!empty($disqus)) ? $disqus : $post->ID;
?>
<script type="text/javascript">
    var disqus_identifier = '<?=$disqus?>';
</script>

Le code affiche correctement la valeur du champ personnalisé. Toutefois, le plug-in Disqus utilise toujours l'ID de la page comme identifiant lorsque j'inspecte le code de la page. Cela signifie que chaque page utilise toujours son propre fil de commentaires.

J'ai essayé de placer le code à plusieurs endroits différents: juste avant le comments_template (); code, dans header.php à différents endroits (avant/après wp_head) et dans footer.php à divers endroits (avant/après wp_footer).

Tout ce que j'ai lu le fait paraître aussi simple que d'ajouter le code d'identification avant l'appel de embed.js pour Disqus. Je sens que je manque peut-être quelque chose de spécial qui doit être fait. Est-il possible que quelque chose d'autre interfère avec cela? Tout le reste fonctionne comme prévu.

Disqus WordPress Plugin: http://wordpress.org/extend/plugins/disqus-comment-system/

Le site sur lequel je travaille n'est pas en ligne tant que ce problème n'est pas résolu, mais je peux le mettre en direct si l'affichage du code du site en entier peut aider.

2
Preston

Je devais obtenir des critiques de groupe déjà présentes dans Disqus de mon ancien site sur mon nouveau site de groupe WordPress. Je voulais seulement les commentaires sur notre page d'accueil alors voici ce que j'ai fait ...

J'ai regardé le code sur mon ancien site et ai saisi la valeur disqus_identifier à partir de là.

J'ai défini et ajouté un champ personnalisé nommé dsq_identifier à mon modèle de page personnalisé et lui ai attribué la valeur disqus_identifier de mon ancien site.

Je suis nouveau dans WordPress et PHP et je suis sûr que c'est une mauvaise idée, mais je devais le faire, alors ...

J'ai édité le comment.php du plugin Disqus en ajoutant ce code après toutes les initialisations var:

<?php if ( get_post_meta($post->ID, 'dsq_thread_id', true) ) : ?>
  disqus_identifier = '<?php echo get_post_meta($post->ID, 'dsq_identifier', true); ?>';
<?php endif; ?>

Etant donné que je souhaite uniquement afficher les commentaires de révision sur notre page d’accueil contenant le champ personnalisé nommé dsq_identifier, j’ai modifié mon modèle personnalisé (utilisé par plusieurs pages). Voici ce code:

<?php if ( get_post_meta($post->ID, 'dsq_identifier', true) ) : ?>
  <?php comments_template(); ?> 
<?php endif; ?>

BAAAMMM! Travaillé la première fois.

Si vous avez des idées sur la façon de faire fonctionner cela sans changer la base de code du plug-in Disqus, vous serez surpris. Je dois prendre du recul et vraiment réfléchir à cela après la sortie du nouveau site dans quelques jours.

1
Chris Simeone