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
}
});
よくある質問(FAQ)
Q. 管理画面の投稿編集画面にプレビューボタンを表示するには?
A. Gutenbergでは画面右上の三点メニューから「プレビュー」を選択できます。クラシックエディターは「プレビュー」ボタンが標準で表示されます。非表示になっている場合は「表示オプション」タブを確認してください。
Q. プレビューリンクを別タブで開くよう変更するには?
A. preview_post_linkフィルターでURLを取得し、JavaScriptでtarget=”_blank”を付けて開く処理を管理画面に追加します。またはEditorでプレビューを選ぶ際に「新しいタブ」オプションを選択します。
Q. プレビューURLをカスタムドメインや別環境に変更するには?
A. preview_post_linkフィルターでURLを書き換えます。ステージング環境のURLにプレビューを向ける場合などに利用します。
まとめ
- 管理画面 CSS を追加して非表示にするのが最も手軽
current_user_can()で権限ごとに制御できる- 投稿タイプごとに条件分岐を加えれば柔軟に対応可能
運用ルールに応じて「全体的に隠す」「権限ごとに隠す」を使い分けると安全です。

