WordPressを利用していると、投稿タイプによって異なる処理を行いたいことが多々あります。特に、固定ページ(ページ)と投稿(ポスト)を区別して処理を変えることが求められる場面が多いです。本記事では、WordPressの投稿画面が固定ページかどうかを判定するための方法について解説します。
get_current_screenを使用する方法
この方法は、管理画面の特定の画面情報を取得するのに便利です。
add_action('load-post.php', 'check_if_page');
add_action('load-post-new.php', 'check_if_page');
function check_if_page() {
$screen = get_current_screen();
if ($screen->post_type == 'page') {
// 固定ページの編集画面
// ここに固定ページの場合の処理を記述
echo 'This is a Page.';
}
}
このコードは、投稿編集画面が読み込まれたときに実行され、現在の画面が固定ページの編集画面であるかどうかを判定します。
global $postを使用する方法
投稿の詳細が必要な場合、この方法が有用です。
add_action('admin_head', 'check_if_page_admin');
function check_if_page_admin() {
global $post;
if (isset($post) && $post->post_type == 'page') {
// 固定ページの編集画面
// ここに固定ページの場合の処理を記述
echo 'This is a Page.';
}
}
このコードは、管理画面のヘッダー部分が読み込まれるときに実行され、現在の投稿が固定ページであるかどうかを判定します。
current_screenフックを使用する方法
これはよりシンプルなアプローチです。
add_action('current_screen', 'check_if_page_current_screen');
function check_if_page_current_screen($screen) {
if ($screen->post_type == 'page') {
// 固定ページの編集画面
// ここに固定ページの場合の処理を記述
echo 'This is a Page.';
}
}
このコードは、現在のスクリーン情報が取得されるときに実行され、現在の画面が固定ページの編集画面であるかどうかを判定します。
まとめ
WordPressの投稿画面が固定ページかどうかを判定する方法は複数あります。get_current_screenやglobal $post、current_screenフックを使用することで、管理画面での処理を柔軟に制御することができます。自身の開発環境や要件に応じて最適な方法を選び、効率的なWordPress管理を実現しましょう。