質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

解決済

「カスタム投稿タイプ内の特定の分類にだけ」という条件付けの方法がわかりません

Euri_K
Euri_K

総合スコア28

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1回答

-1評価

1クリップ

193閲覧

投稿2021/11/24 03:36

編集2021/11/24 04:50

前提・実現したいこと

WORDPRESSにカスタム投稿タイプ「location」を配置し、
中に「店舗(タクソノミー名:store)」という分類を設け、それぞれに「nagoya」「tokyo」といった地域名でスラッグを設定しました。
このスラッグを利用し、各店舗ごとの詳細ページやアーカイブページに対して
特定のHTMLソースを追加したいのですが、
どのようにheader.phpに記載してよいかわかりません。

発生している問題・エラーメッセージ

カスタム投稿タイプの個別ページ・アーカイブページに対して、 上記分類に応じた内容を表示したいが、なにも表示できない状態

該当のソースコード

function.php

add_action( 'init', 'create_post_type' ); function create_post_type() { register_post_type( 'location', [ // 投稿タイプ名の定義 'labels' => [ 'name' => '店舗ブログ', // 管理画面上で表示する投稿タイプ名 'singular_name' => 'location', // カスタム投稿の識別名 ], 'public' => true, // 投稿タイプをpublicにするか 'has_archive' => true, // アーカイブ機能ON/OFF 'menu_position' => 5, // 管理画面上での配置場所 'supports' => array( 'title', 'editor', 'thumbnail', 'revisions', 'excerpt', 'custom-fields', ), 'rewrite' => array('slug' => 'location', 'with_front' => false), 'show_in_rest' => true, // 5系から出てきた新エディタ「Gutenberg」を有効にする ]); //カテゴリを投稿と共通設定にする // register_taxonomy_for_object_type('info-cat', 'infopage'); // //タグを投稿と共通設定にする // register_taxonomy_for_object_type('post_tag', 'infopage'); } // // カスタム分類(カスタムタクソノミー) // function add_taxonomy() { //店舗 register_taxonomy( 'store', 'location', array( 'label' => '店舗', 'singular_label' => '店舗', 'labels' => array( 'all_items' => '店舗一覧', 'add_new_item' => '店舗を追加' ), 'public' => true, 'show_ui' => true, 'show_in_nav_menus' => true, 'hierarchical' => true ) ); //カテゴリー register_taxonomy( 'location_cat', 'location', array( 'label' => 'カテゴリー', 'singular_label' => 'カテゴリー', 'labels' => array( 'all_items' => 'カテゴリー一覧', 'add_new_item' => 'カテゴリーを追加' ), 'public' => true, 'show_ui' => true, 'show_in_nav_menus' => true, 'hierarchical' => true ) ); } add_action( 'init', 'add_taxonomy' );

header.php

<?php if (get_post_type() === 'location' && is_single('')): ?> 「特定のHTMLソース」 <?php endif; ?>

これで詳細ページ全てに表示できるのはわかったのですが、
個別の店舗ごとにソースを分ける必要があり、
is_singleに上記のスラッグ名を入れたところ条件外となってしまいます。

また、各店舗ごとのアーカイブページについては方法が全くわかっていない状態です。

よろしくおねがいします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

nekora

2021/11/24 04:41

肝心な、カスタム投稿を定義しているソースコードが提示されていません。 このままでは、答えるに答えられません。質問は編集できますので、 カスタム投稿を定義しているソースと、カテゴリーやタグに該当するカスタムタクソノミーを設定している場合は、 それのイメージも公開してください。そうすれば答えられます。
Euri_K

2021/11/24 04:52

function.phpの、該当箇所らしき部分を追記しました。 途中から運用を引き継いでおり、不足分がまだあるかもしれません。ご指摘いただければ幸いです。
Euri_K

2021/11/29 02:47

追記頂いてありがとうございます。お返事が遅くなりましてすみません。 いただいた内容をもとに、各店舗ごとにコンバージョンタグをechoで出力する形で、うまくいきました。 非常に助かりました…!
nekora

2021/11/29 03:55

上手くいったみたいでよかったです。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。