カテゴリーと固定ページに設定できる“スラッグ”
このスラッグを使って、カテゴリーと固定ページを紐付ける方法を考えてみた。
スラッグを元に固定ページの情報を取得する方法は、『get_page_by_path()』を使えばできるらしい。
まずは、カテゴリーのスラッグと、そのカテゴリーと紐付けしたい固定ページのスラッグを同じに設定する。
例えば、カテゴリーテンプレートのページ(category.php)で、
$mycat_name = get_query_var('category_name');
↑これで表示しているカテゴリーのスラッグが取得できる。
それから、
get_page_by_path($mycat_name)とすれば、現在表示してるカテゴリーページに紐付けされた固定ページの情報を表示することができる。
たとえば、紐付けされた固定ページのIDを表示したければ、
$cat_page_id = get_page_by_path($mycat_name)->ID;
echo $mycat_name;
となる。
しか~し!
これにはとても大きな問題が!
それはスラッグ。
固定ページの階層化(親ページと子ページの関係)をつくってしまうと、スラッグも階層化されるらしい。
どういうことかというと、親の無い固定ページの場合はそのまま設定したスラッグが正式なスラッグ。
親の有る固定ページのスラッグの場合、スラッグは'親ページのスラッグ/子ページのスラッグ'となるらしい。
階層化が無い場合を条件に考えて使わないといけない。
このスラッグを使って、カテゴリーと固定ページを紐付ける方法を考えてみた。
スラッグを元に固定ページの情報を取得する方法は、『get_page_by_path()』を使えばできるらしい。
まずは、カテゴリーのスラッグと、そのカテゴリーと紐付けしたい固定ページのスラッグを同じに設定する。
例えば、カテゴリーテンプレートのページ(category.php)で、
$mycat_name = get_query_var('category_name');
↑これで表示しているカテゴリーのスラッグが取得できる。
それから、
get_page_by_path($mycat_name)とすれば、現在表示してるカテゴリーページに紐付けされた固定ページの情報を表示することができる。
たとえば、紐付けされた固定ページのIDを表示したければ、
$cat_page_id = get_page_by_path($mycat_name)->ID;
echo $mycat_name;
となる。
しか~し!
これにはとても大きな問題が!

それはスラッグ。
固定ページの階層化(親ページと子ページの関係)をつくってしまうと、スラッグも階層化されるらしい。
どういうことかというと、親の無い固定ページの場合はそのまま設定したスラッグが正式なスラッグ。
親の有る固定ページのスラッグの場合、スラッグは'親ページのスラッグ/子ページのスラッグ'となるらしい。
階層化が無い場合を条件に考えて使わないといけない。
