wordpress スラッグ取得

【wordpress】固定ページのスラッグを取得し、そのスラッグに応じて表示するテンプレートを変更する

2019.10.26 / 2020.11.19

ページのスラッグを能動的に取得して、そのスラッグに応じて表示するテンプレートを変える方法のメモです。

動的にスラッグを取得

今回はグループ名を[group_name]、画像名を[item_image]、テキスト名を[item_text]と指定しています。

$page = get_post( get_the_ID() );
$slug = $page->post_name;

上記の記述でページのスラッグを取得します。
※私の場合、ヘッダーサブループがあり、それをリセット[wp_reset_postdata]し忘れていたため、postの値を取得していました^^;

get_template_partとinclude locate_template

get_template_partは引数を渡せない

[$slug]を[get_template_part]に渡せないので、include locate_templateを使用します。テーマフォルダー直下のtemplateフォルダ内のcontent-スラッグ名.phpを読み込ませたいので、

include locate_template( 'template/content-'.$slug.'.php' );

上記の記述します。
まとめると、

$page = get_post( get_the_ID() );
$slug = $page->post_name;
include locate_template( 'template/content-'.$slug.'.php' );

このようになります。以上です

ポイント

メインループとサブループの表示
カスタム投稿タイプのURLをIDに変更する方法
会員限定記事と一般公開記事にそれぞれ別のアイコンを設定
カスタムフィールド が空の場合の処理方法メモ
プラグインなしで絞り込み機能の設置
検索結果からページを除外
カスタム投稿タイプにカテゴリ&タグ追加しアーカイブページで表示
WordPressの本文のpやhタグにclassをつける