WordPressには投稿ページや固定ページ、カテゴリーページなどを判定することが可能なテンプレートタグが用意されています。
また、それらを使用することでis_single(‘スラッグ’)などのように記述すれば「スラッグが○○○の投稿ページ」という風に個別判定することも可能です。
しかし、カスタム投稿タイプとなると話は別で、
「スラッグが○○○のカスタム投稿タイプページ」
という風に、カスタム投稿タイプ内で特定のページを判定をするためのテンプレートタグは用意がありません。
そのため今回は
カスタム投稿タイプの特定ページを
スラッグで判定する方法
をご紹介していきます。
カスタム投稿タイプの中の特定のページを判定したいのにできずにお困りの方は、今回の方法を使用すれば簡単に実装可能です。
ぜひご活用ください!
【ソースコード】カスタム投稿タイプの特定ページを判定する方法
以下のソースコードで「カスタム投稿タイプのの特定ページをスラッグで判定する」ことが可能です。
// 現在のページ情報
global $post;
// スラッグ
$slug = $post->post_name;
// スラッグが「sample_post」かどうかを判定
if ( $slug === 'sample_post' ) {
/**
* ここにスラッグが「sample_post」だった場合の処理を記述
*/
}
前述したように、WordPressには「カスタム投稿タイプの特定ページを判定するテンプレートタグ」がありません。
そこで今回利用するのが上記でハイライトされている
// 現在のページ情報
global $post;
の部分です。
WordPressにはグローバル変数と呼ばれるものが使用されており、global $post;と記述することでグローバル変数$postを呼び出しています。
また、グローバル変数$postには現在のページ情報が格納されています。
したがって、「global $post;と記述して$postを呼び出すことで、現在のページ情報を$postという変数で扱えるようになる」という理屈です。
※$postの変数名は変更してはいけません。
グローバル変数$postには当然ながらそのページのスラッグ情報なども格納されています。
今回はその性質を利用し、「カスタム投稿タイプの特定ページを判定」しています。
カスタム投稿タイプ以外でも使用可能
この記事では「カスタム投稿タイプ」に限定して解説を進めてました。
しかし、今回ご紹介したソースコードは
投稿・固定・カスタム投稿タイプのどれであるかに関わらず使用することが可能
です。
まとめ
以上が「カスタム投稿タイプの特定ページを判定する方法」でした。
あまり無いケースだからなのかもしれませんが、カスタム投稿タイプの特定ページを判定する方法の解説記事があまり見当たらなかったため、今回記事にまとめてみました。
当ブログではWordPressやPHP、Web制作に関するお役立ち情報を発信しています。
ご興味のある方はぜひ他の記事もご覧いただけると嬉しいです!
それでは、最後までご覧いただきありがとうございました!
この記事がお役に立ったなら何よりです。
コメント