現在取り組んでいるサイトの "キャンペーン"というCPTを作成しました。コンテンツを表示するページと最新のキャンペーンを表示するカスタムループを作成しました。
私はコメントのために私はDisqusを使っていて、私はここでDisqusを使いたいのですが - それは表示されていないようです。コメントコードを次のように修正してみました。
<?php $withcomments = "1"; comments_template(); ?>
しかし、私はDisqusではなく、通常のコメントフォームを受け取ります。どのようにそれを回避するためのアイデアがありますか?
前もって感謝します!
8-2-11 - テーマ内のcomments.phpファイルをプラグインからのコメントファイルで上書きするという一時的な回避策を見つけました - しかしそれは両者を同期させることを意味しますより良い解決策を見つけることができます。
CPTを comments
配列register_post_type()
にsupports
で登録していますか?
Disqusプラグインコードを簡単に見ると、関連するものをチェックする dsq_comments_template()
関数があり、コメントのサポートが宣言されていない場合はおそらくfalse
を返します。
これはおそらくばかげていると私はあなたがおそらく事前にこれをチェックしたと確信しています...しかし、それは私のためにトリックをしました。結局、私のユーザーは私のカスタム投稿の多くで "コメントを許可する"オプションのチェックを外していました、そして私は先に進んでそれを最初にチェックしませんでした。
とにかく、これをデバッグするために、おそらく 'disqus.php'ファイルのdisqusプラグインを671行目付近で修正することができるでしょう。これはdsq_comments_template($value)
関数を見つけるでしょう。これは通常のコメントの代わりにdisqusをロードするものです。
私がしたことはそれがdisqusをロードしない条件をチェックすることでした。
if ( !( is_singular() && ( have_comments() || 'open' == $post->comment_status ) ) ) {
echo "sing?: ".is_singular()." have_comm?: ".have_comments().
" open?:".$post->comment_status; // this was my modification ;)
return;
}
if ( !dsq_is_installed() || !dsq_can_replace() ) {
return $value;
}
$post->comment_status
がそれを返す原因となっていることに気付いたとき、私はすべての投稿をチェックし、最初に明白なものをチェックしないことに憤慨しました。とにかく、それが役立つことを願っています!