web-dev-qa-db-ja.com

カスタムdisqus_identifierがデフォルト値を正しく変更していません

私はすべて同じトピックの一部であるいくつかのページを持っています、そして私はそれらがDisqusで同じコメントスレッドを使用したいと思います。カスタムフィールドからカスタム識別子を取得するために、次のコードを使用しています。

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

コードはカスタムフィールドの値を正しく表示していますが、Disqusプラグインはページコードを調べるときにまだIDとしてページIDを使用しています。各ページがまだ独自のコメントスレッドを使用していることを意味します。

私はいくつかの異なる場所にコードを配置しようとしました:comments_template()の直前。 (wp_headの前後の)さまざまな場所にあるheader.phpと、(wp_footerの前後の)さまざまな場所にあるfooter.phpのコード。

私が読んだものはすべて、embed.jsがDisqusを呼び出す前に識別子コードを追加するのと同じくらい簡単に思えます。私がする必要がある特別な何かを逃しているかもしれないように私は感じます。他の何かがそれを妨げている可能性がありますか?それ以外はすべて期待通りに機能しています。

Disqus WordPressプラグイン: http://wordpress.org/extend/plugins/disqus-comment-system/

私が取り組んでいるサイトは、この問題が解決されるまでライブではありませんが、サイトコード全体を表示すると問題が解決する場合は、ライブに設定できます。

2
Preston

私は私の古いサイトから私の新しいWordPressバンドサイトに既にDisqusにあったいくつかのバンドレビューを得なければならなかった。私は私達のホームページのレビューだけが欲しかったので、ここに私がしたことがあります...

私は私の古いサイトのコードを見て、そこからdisqus_identifier値をつかみました。

私はカスタムページテンプレートにdsq_identifierという名前のカスタムフィールドを定義して追加し、それに私の古いサイトからのdisqus_identifier値を与えました。

私はWordPressとPHPに慣れていないので、これは悪い考えであると確信していますが、これを実行する必要があるので、...

すべてのvar初期化の後にこのコードを追加することによって、Disqusプラグインのcomment.phpを編集しました。

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

私はdsq_identifierという名前のカスタムフィールドを持つ私たちのホームページにレビューコメントを表示したいだけなので、私は自分のカスタムテンプレートを修正しました(それはいくつかのページで使われていました)。これがそのコードです:

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

BAAAMMM!初めて働きました。

Disqusプラグインのコードベースを変更せずにこれを機能させる方法について何かアイデアがあれば、それは揺るぎないでしょう。私は一歩後退する必要があり、新しいサイトが2、3日でリリースされた後にこれを本当に考える必要があります。

1
Chris Simeone