WordPressの固定ページでコメントフォームを非表示にする方法

WordPressの固定ページでコメントフォームを非表示にする方法

Posted at November 15,2011 1:55 AM
Tag:[]

WordPressの固定ページ(あるいは記事ページ)でコメントフォームを非表示にする方法をまとめました。

変更前後のイメージを掲載しておきます。

コメントフォームが表示された状態の固定ページ
表示オプション

コメントフォームを非表示にした状態の固定ページ
表示オプション

以下、設定方法です。説明の中で使っている管理画面のスクリーンショットはWordPress 3.2.1です。

1.記事単位でコメントフォームの表示・非表示を制御する

記事単位でコメントフォームの表示・非表示を制御するには、投稿画面右上にある表示オプションをクリック。

管理画面

「ディスカッション」をチェック(チェックされていれば次に進んでください)。

表示オプション

「コメントの投稿を許可する。」のチェックをはずす。

ディスカッション

これで投稿すれば固定ページのコメントフォームが非表示になります。

2.一括で制御する

一括でコメントフォームの表示・非表示を制御するには、ナビゲーションの「設定」→「ディスカッション」をクリック。

ナビゲーション

「新しい投稿へのコメントを許可する」のチェックをはずして「変更を保存」をクリックすれば、以降の新規投稿分についてコメントフォームが表示されなくなります。

新しい投稿へのコメントを許可する

厳密に言うと、この設定を行うことで、新規投稿時に1項の「コメントの投稿を許可する。」のチェックがはずれた状態になります。記事投稿画面で個別に「コメントの投稿を許可する。」をチェックすれば、「設定」→「ディスカッション」の設定より優先されます。

3.固定ページのみ常に非表示にする

2項の設定は記事ページ・固定ページ別での制御が行えず、使い勝手がよくありません。

固定ページのみ一括で非表示にしたい場合は、wp-includes/comment-template.phpにcomments_openフィルタがあるので、これを利用して、テーマのfunctions.phpに以下のコードを追加するとよいでしょう。

function close_page_comment( $open, $post_id ) {
    $post = get_post( $post_id );
    if ( $post && $post->post_type == 'page' ) {
        return false;
    }
    return $open;
}
add_filter( 'comments_open', 'close_page_comment', 10, 2 );

これで固定ページのディスカッションの設定状態にかかわらず、コメントフォームを非表示にします。

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)