it-swarm.com.de

Benutzerdefinierte Disqus-ID, die den Standardwert nicht ordnungsgemäß ändert

Ich habe mehrere Seiten, die alle zum selben Thema gehören, und ich möchte, dass sie denselben Kommentarthread auf Disqus verwenden. Ich verwende den folgenden Code, um den benutzerdefinierten Bezeichner aus einem benutzerdefinierten Feld abzurufen:

<?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>

Der Code zeigt den Wert aus dem benutzerdefinierten Feld korrekt an. Das Disqus-Plugin verwendet jedoch weiterhin die Seiten-ID als Bezeichner, wenn ich den Seitencode überprüfe. Das heißt, jede Seite verwendet weiterhin einen eigenen Kommentarthread.

Ich habe versucht, den Code an verschiedenen Stellen zu platzieren: kurz vor der comments_template (); code, in header.php an verschiedenen Stellen (vor/nach wp_head) und in footer.php an verschiedenen Stellen (vor/nach wp_footer).

Alles, was ich gelesen habe, klingt so einfach wie das Hinzufügen des Identifizierungscodes, bevor die embed.js Disqus aufrufen. Ich habe das Gefühl, dass mir etwas Besonderes fehlt, das getan werden muss. Ist es möglich, dass etwas anderes das stört? Alles andere funktioniert wie erwartet.

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

Die Site, an der ich arbeite, ist erst aktiv, wenn dieses Problem behoben ist. Ich kann sie jedoch aktivieren, wenn das Anzeigen des gesamten Site-Codes hilfreich ist.

2
Preston

Ich musste einige Bandrezensionen, die bereits in Disqus waren, von meiner alten Site in meine neue WordPress-Band-Site aufnehmen. Ich wollte nur die Bewertungen auf unserer Homepage, also ist hier, was ich getan habe ...

Ich habe mir den Code auf meiner alten Site angesehen und dort den Wert disqus_identifier abgerufen.

Ich habe ein benutzerdefiniertes Feld mit dem Namen dsq_identifier definiert und zu meiner benutzerdefinierten Seitenvorlage hinzugefügt und ihm den Wert disqus_identifier von meiner alten Site gegeben.

Ich bin neu in WordPress und PHP und ich bin mir sicher, dass dies eine schlechte Idee ist, aber ich musste dies erledigen, also ...

Ich habe den comment.php des Disqus-Plugins bearbeitet, indem ich diesen Code nach der gesamten var-Initialisierung hinzugefügt habe:

<?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; ?>

Da ich nur die Überprüfungskommentare auf unserer Homepage mit dem benutzerdefinierten Feld dsq_identifier anzeigen möchte, habe ich meine benutzerdefinierte Vorlage (die von mehreren Seiten verwendet wird) geändert. Hier ist der Code:

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

BAAAMMM! Hat das erste mal geklappt.

Wenn Sie Ideen haben, wie Sie dies zum Laufen bringen können, ohne die Disqus-Plugin-Codebasis zu ändern, würde das rocken. Ich muss einen Schritt zurücktreten und darüber nachdenken, nachdem die neue Website in ein paar Tagen veröffentlicht wurde.

1
Chris Simeone