WordPressのコメント機能を無効にする手順とコード

WordPressのコメント機能を完全に無効化する方法について説明します。以下のコードを使用することで、すべての投稿タイプに対してコメント機能を無効化し、管理画面からコメント関連のメニューやリンクを削除し、フロントエンドでのコメント表示も無効にします。

<?php
// コメント機能を無効にする
function disable_comments_post_types_support() {
    $post_types = get_post_types();
    foreach ($post_types as $post_type) {
        if (post_type_supports($post_type, 'comments')) {
            remove_post_type_support($post_type, 'comments');
            remove_post_type_support($post_type, 'trackbacks');
        }
    }
}
add_action('admin_init', 'disable_comments_post_types_support');

// 管理画面のコメントメニューを削除する
function disable_comments_admin_menu() {
    remove_menu_page('edit-comments.php');
}
add_action('admin_menu', 'disable_comments_admin_menu');

// 管理バーのコメントリンクを削除する
function disable_comments_admin_bar() {
    if (is_admin_bar_showing()) {
        remove_action('admin_bar_menu', 'wp_admin_bar_comments_menu', 60);
    }
}
add_action('init', 'disable_comments_admin_bar');

// フロントエンドでのコメント表示を無効にする
function disable_comments_template_redirect() {
    if (is_singular() && comments_open()) {
        wp_redirect(home_url());
        exit;
    }
}
add_action('template_redirect', 'disable_comments_template_redirect');

// デフォルトでコメントを閉じる
function disable_comments_default_settings() {
    update_option('default_comment_status', 'closed');
    update_option('default_ping_status', 'closed');
}
add_action('init', 'disable_comments_default_settings');
?>

各コードの説明

  1. コメント機能を無効にする
    • すべての投稿タイプからコメント機能とトラックバック機能を削除します。
  2. 管理画面のコメントメニューを削除する
    • 管理画面から「コメント」メニューを削除します。
  3. 管理バーのコメントリンクを削除する
    • 管理バーから「コメント」リンクを削除します。
  4. フロントエンドでのコメント表示を無効にする
    • フロントエンドでコメントが開かれている場合、ホームページにリダイレクトします。
  5. デフォルトでコメントを閉じる
    • 新しい投稿やページのデフォルト設定でコメントとピンバックを無効にします。

実装方法

  1. WordPressのテーマフォルダ内にあるfunctions.phpファイルを編集します。
  2. 上記のコードをfunctions.phpファイルの最後に追加します。
  3. ファイルを保存し、サイトに変更が反映されることを確認します。

これで、WordPressサイト上のすべてのコメント機能が無効化され、管理画面やフロントエンドからもコメントに関する機能が完全に削除されます。

この記事を書いた人

田島 佑清

2児の父 / ネクストメディア株式会社のエンジニア