web-dev-qa-db-ja.com

投稿ページからではなく、ページのみからコメントセクションを削除する方法?

投稿ページからではなく、ページのみからコメントセクションを削除する方法?

6

ページにではなく、投稿にコメントとコメントフォームを表示したい場合は、表示されるアイテムの種類(投稿またはページ)に応じて、テンプレートファイル内のロジックを comments_template() に分割する必要があります。これを行うには2つの方法があります。両方の項目に対して1つのテンプレートファイルを保持するか、 コンディショナルタグを使用するか のいずれかです。

if (!is_page()) {
     comments_template();
}

他の選択肢はあなたの投稿にsingle.phpテンプレートファイルとあなたのページにpage.phpの両方を使うことです(詳細は テンプレート階層 を見てください)。ページテンプレートのcomments_template()への呼び出しを省略してください。投稿レイアウトとページレイアウトの間に他の違いがない場合は、コンディショナルタグを含む1つのテンプレートファイルを組み合わせたほうがメンテナンス性に優れています。

テンプレートファイルに既にcomments_template()への呼び出しが含まれている場合、これを「遠くから」実行したい場合は、comments_templateフィルタにフックしてディレクトリ内の空のファイルにリダイレクトするプラグインを作成できます。プラグインファイルそのものであっても - PHPコードしか含まれていないので、何も表示されません - しかし、これは他の人を混乱させます。

add_filter('comments_template', 'no_comments_on_page');
function no_comments_on_page( $file )
{
    if ( is_page() ) {
        $file = dirname( __FILE__ ) . '/empty-file.php';
    }
    return $file;
}
7
Jan Fabry

私はこれが大好きです comments.phpテンプレートの冒頭のHybridテーマのスニペット コメントがサポートされていないかポストごと/ページごとに無効にされている場合は柔軟にコメントを無効にします。

if ( !post_type_supports( get_post_type(), 'comments' ) || ( !have_comments() && !comments_open() && !pings_open() ) )
    return;
4
Rarst

テーマによって異なります。

pages.phpコードを確認し、コメントに関連するものを削除してください

デザインを壊さないように注意してください。

もしpages.phpのコードをここに投稿できるのであれば、私たちがしなければならない修正をuに伝えてくれることを願って

0
mireille raad