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()
で権限ごとに制御できる- 投稿タイプごとに条件分岐を加えれば柔軟に対応可能
運用ルールに応じて「全体的に隠す」「権限ごとに隠す」を使い分けると安全です。