【WordPress】編集画面の「プレビューボタン」を非表示にする方法

【WordPress】編集画面の「プレビューボタン」を非表示にする方法 WordPress

WordPress の投稿・固定ページ編集画面では、デフォルトで「プレビュー」ボタンが表示されています。運用上、誤ってプレビューを押されると困る場合や、特定のユーザー権限ではプレビューを利用させたくない場合は、このボタンを非表示にできます。ここでは functions.php などに記述して対応する方法を紹介します。

CSSで強制的に非表示にする

最も簡単なのは、管理画面専用の CSS を追加して「プレビューボタン」を隠す方法です。

<?php
// 管理画面用CSSを追加
add_action('admin_head', function () {
    echo '<style>
        #post-preview,
        .preview.button { display: none !important; }
    </style>';
});

この方法では全ユーザーに対して一律で「プレビューボタン」が非表示になります。

権限によって制御する

特定の権限(例:投稿者)は非表示にし、管理者や編集者は表示させたい場合は条件分岐を使います。

<?php
add_action('admin_head', function () {
    if (!current_user_can('administrator')) {
        echo '<style>
            #post-preview,
            .preview.button { display: none !important; }
        </style>';
    }
});

プレビューボタンを完全に削除する(PHPで)

CSS で隠すのではなく、サーバーサイドで出力自体を止めたい場合は、post_submitbox_misc_actions フックを利用します。

<?php
add_action('post_submitbox_misc_actions', function () {
    global $post;
    // 投稿タイプに応じて制御したい場合
    if ($post->post_type === 'post') {
        ?>
        <style>
            #post-preview,
            .preview.button { display: none !important; }
        </style>
        <?php
    }
});

まとめ

  • 管理画面 CSS を追加して非表示にするのが最も手軽
  • current_user_can() で権限ごとに制御できる
  • 投稿タイプごとに条件分岐を加えれば柔軟に対応可能

運用ルールに応じて「全体的に隠す」「権限ごとに隠す」を使い分けると安全です。