ブログ
9.122016
作成したカスタム投稿タイプで設定したスラッグの開いているURLから表示名を取得して表示する
通常の投稿記事以外に、分野を限定した記事を作成するためにWordPressでは「カスタム投稿タイプ」を作り、通常の記事とは分けて管理する運用がよくおこなわれます。
作成したカスタム投稿タイプに対して独自のカテゴリを設定し、さらに細分化しながら記事を投稿していく運用もよく行われているところです。
このとき、作成したカスタム投稿タイプの一覧で、いずれかのカテゴリの一覧を表示する際などに、どのカテゴリを表示しているか視認性を確保するために、ページのタイトルに選択中のカテゴリ名を表示するほか、ページ内のいずれかの箇所にも表示したいというケースも多いことと思います。
ここでは、このような運用を行う際に、ページ内のかずれかの箇所に選択中のカテゴリの名称を表示するための方法を解説します。
まず大前提になりますが、カスタム投稿タイプを作成した後のカテゴリ(タクソノミー)の追加方法は以下のようなコードで実現します。
$args = array( 'label' => '○○', 'labels' => array('name' => '○○', 'singular_name' => '○○', 'search_items' => '○○を検索', 'popular_items' => 'よく使われている○○', 'all_items' => 'すべての○○', 'parent_item' => '親○○', 'edit_item' => '○○の編集', 'update_item' => '更新', 'add_new_item' => '新規○○を追加', 'new_item_name' => '新しい○○', ), 'public' => true, 'show_ui' => true, 'hierarchical' => true, ); register_taxonomy('genre', 'tourism', $args);
表示中(選択中)のカテゴリの情報の取得方法ですが、以下の例のような方法で表示中のURLから「/」で区切って取得するなどしてください。この例では「/」で区切られた2つ目のエリアが該当するカテゴリだったとします。
$request_url = $_SERVER['REQUEST_URI']; $dir = split("/",$request_url); $cat_slag = $dir[2];
カスタム投稿タイプのスラッグを「TYPE」、カスタム投稿タイプに対して作成したカテゴリ・タクソノミーを「TAXONOMY」とした場合、以下のコードで指定したスラッグの名前を取得することができます。
function get_the_term_name($taxonomy_slug) { $name = false; if ($terms = get_categories(array('type'=>'TYPE', 'taxonomy'=>'TAXONOMY'))) { foreach ($terms as $term) { if ($term->slug == $taxonomy_slug) { $name = esc_html($term->name); break; } } } return $name; }
表示する箇所では、取得したいカテゴリのスラッグから名称を取得し表示させます。
echo get_the_term_name($cat_slag);
プログラムを駆使して対処する形となってしまい、初心者にはハードルの高い内容ですが、より高度なテーマの調整を行う方法としてはプログラムの技術が必要となります。
PLUGMIZE(プラグマイズ)では技術支援やサポートなども行っております。当ブログに限らず、一度サンプルを見て作ったもののうまくいかないケースなど、お気軽にご相談ください。
Copyright © PLUGMIZE(プラグマイズ)