web-dev-qa-db-ja.com

Facebookプラグインは既存のコメントを表示します

公式フェイスブック プラグイン をインストールして動いているようです。問題は、Facebookのコメントフォームの上に既存のコメントが(デフォルトのスタイルで)表示されていることです。

私のcomments.phpは現在空です、そして私はこれを見ます。 (ギリシャ語のテキストについては申し訳ありませんが、変更する時間はありません)。可能なマージがないことを私は知っていたので、私はそれを空にしました、それでこのサイトでfb-commentsだけの時代に移動してください。

既存のコメントを完全に削除する方法、または少なくともそれらをスタイルしてfbコメントの後に移動する方法はありますか?プラグインのバックオフィスには選択肢がありません。

enter image description here

1
Odys

私はこのプラグインを使用していませんが、このコメントテンプレートの loaded のように見えます。

add_filter( 'comments_template', array( 'Facebook_Comments', 'comments_template' ) );

このコメントテンプレートの単純化された構造は次のようになります。

if ( have_comments() ) :
    // ...
    wp_list_comments( $_comment_options );
    // ...
endif; 

$_facebook_comments = Facebook_Comments::comments_box();
if ( $_facebook_comments ) {
       do_action( 'facebook_comment_form_before' );
       echo '<div id="respond">';
       echo $_facebook_comments;
       echo '</div>';
       do_action( 'facebook_comment_form_after' );
}

それからWordPressのコメント部分を飛ばすためにhave_comments()falseを返させることができます。

コアをチェックすると、 が見つかります。

function have_comments() {
    global $wp_query;
    return $wp_query->have_comments();
 }

クラスメソッドは次のように定義されます。

function have_comments() {
    if ( $this->current_comment + 1 < $this->comment_count ) {
        return true;
    } elseif ( $this->current_comment + 1 == $this->comment_count ) {
         $this->rewind_comments();
    }

    return false;
}

あなたはそれから試すことができます

function skip_wp_comments() {   
    global $wp_query;
    $wp_query->current_comment = 999; // large number
}
add_action( 'template_redirect', 'skip_wp_comments' );

have_comments()falseを返させる。

それでもうまくいかない場合は、comments_templateフィルタを上書きして独自のテンプレートを使用するか、comment_count部分を試してみることができます。

2
birgire