Title: カスタム投稿が表示された場合の条件分岐タグを教えてください
Last modified: 2016年9月15日

---

# カスタム投稿が表示された場合の条件分岐タグを教えてください

 *  解決済 [ijsdotnet](https://ja.wordpress.org/support/users/ijsdotnet/)
 * (@ijsdotnet)
 * [11年、 1ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%81%8c%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%81%9f%e5%a0%b4%e5%90%88%e3%81%ae%e6%9d%a1%e4%bb%b6%e5%88%86%e5%b2%90%e3%82%bf%e3%82%b0%e3%82%92/)
 * テーマを自作しております。
    グローバルナビゲーションでアクティブになっているページ
   のナビゲーションボタンの色が変更される物を作ろうとしております。 固定ページの
   場合の条件分岐タグは分かるのですが、カスタム投稿で作成されたページが開かれている
   場合がうまく出来ません。
 *     ```
       <?php if(is_post_type_archive( 'page01' )): ?>
             <li id="glo_nav01_active"><a href="<?php echo home_url('/'); ?>page01">ページその一</a></li>
             <?php elseif(!is_post_type_archive( 'page01' )): ?>
             <li id="glo_nav01"><a href="<?php echo home_url('/'); ?>page01">ページその一</a></li>
           <?php endif; ?>
       ```
   
 * 上記の様に記載すると、一覧(page01-archive.php)の場合はちゃんと効いてくれますが、
   当然ながら個別ページ（page01-single.php）の場合は効きません。
    `is_post_type_archive('
   page01' )`ではなく、`get_post_type=='page01'`でもやってみましたが、まったく効
   かずメニューボタンすら消えてしまいます。
 * 要はカスタム投稿ページ（archive、single）が表示されている場合の条件分岐タグを
   教えていただけないでしょうか。
 * つたない説明で申し訳ないですが、よろしくお願いいたします。

9件の返信を表示中 - 1 - 9件目 (全9件中)

 *  モデレーター [けい (Kei Nomura)](https://ja.wordpress.org/support/users/mypacecreator/)
 * (@mypacecreator)
 * [11年、 1ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%81%8c%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%81%9f%e5%a0%b4%e5%90%88%e3%81%ae%e6%9d%a1%e4%bb%b6%e5%88%86%e5%b2%90%e3%82%bf%e3%82%b0%e3%82%92/#post-196777)
 * singleのときはis_singularでいかがでしょう。
 * 関数リファレンス/is singular – WordPress Codex 日本語版
    [http://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/is_singular](http://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/is_singular)
 *  トピック投稿者 [ijsdotnet](https://ja.wordpress.org/support/users/ijsdotnet/)
 * (@ijsdotnet)
 * [11年、 1ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%81%8c%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%81%9f%e5%a0%b4%e5%90%88%e3%81%ae%e6%9d%a1%e4%bb%b6%e5%88%86%e5%b2%90%e3%82%bf%e3%82%b0%e3%82%92/#post-196795)
 * mypacecreator 様
    ありがとうございます。 `<?php if(is_post_type_archive( 'ポスト
   タイプ' ) || is_singular('ポストタイプ' )): ?>`にて無事に希望通りの結果が出来
   ました。
 * ちなみに、get_post_type==’ポストタイプ’はどんな場面で使うのでしょうか？
    差し
   支えなければ教えていただけますでしょうか。
 * 今まで何度か使用を試みましたが、一度もそのポストタイプに関連したページの場合に
   適応された事がありません。
    私が参考にしているテキストには、 「get_post_type=
   =’informaiton’ 投稿タイプ「informaiton」が表示されているとき」と記載があります
   が(^_^;)
 *  モデレーター [けい (Kei Nomura)](https://ja.wordpress.org/support/users/mypacecreator/)
 * (@mypacecreator)
 * [11年、 1ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%81%8c%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%81%9f%e5%a0%b4%e5%90%88%e3%81%ae%e6%9d%a1%e4%bb%b6%e5%88%86%e5%b2%90%e3%82%bf%e3%82%b0%e3%82%92/#post-196821)
 * > ちなみに、get_post_type==’ポストタイプ’はどんな場面で使うのでしょうか？
 * 関数リファレンス/get post type – WordPress Codex 日本語版
    [http://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_post_type](http://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_post_type)
 * Codexを読むと、この関数は**ループの中でしか使えません**。
    （global宣言すれば
   使えるのかな）
 * ページタイトルやヘッダー、グローバルナビなどループ外で使いたいケースのほうが多い
   と思うので、get_post_typeは非常に使いづらい気がします（※個人の感想です）
 *  [photographer hiro.](https://ja.wordpress.org/support/users/mura0403/)
 * (@mura0403)
 * [11年、 1ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%81%8c%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%81%9f%e5%a0%b4%e5%90%88%e3%81%ae%e6%9d%a1%e4%bb%b6%e5%88%86%e5%b2%90%e3%82%bf%e3%82%b0%e3%82%92/#post-196830)
 * ijsdotnetさん、意味合い的にあっているかどうかわかりませんが
    「get_post_type=
   =’informaiton’」で判定するならこんなかんじですかね？
 *     ```
       <?php if(get_post_type() == 'informaiton' )://投稿タイプ「custompost」の場合 ?>
       カスタム投稿タイプの時の条件
       <?php elseif(get_post_type() == 'post' )://投稿の場合 ?>
       投稿の時の条件
       <?php elseif(get_post_type() == 'page' )://固定ページの場合 ?>
       固定ページの時の条件
       <?php else ://その他の場合 ?>
       その他の時の条件
       <?php endif; //カスタムタイプによる条件分岐終了 ?>
       ```
   
 * あまりPHP詳しくないので、間違っていたらすみません。
    正しいやり方かどうかは不明
   です。
 *  [x743](https://ja.wordpress.org/support/users/x743/)
 * (@x743)
 * [11年、 1ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%81%8c%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%81%9f%e5%a0%b4%e5%90%88%e3%81%ae%e6%9d%a1%e4%bb%b6%e5%88%86%e5%b2%90%e3%82%bf%e3%82%b0%e3%82%92/#post-196836)
 * mypacecreatorさん
 * > Codexを読むと、この関数は**ループの中でしか使えません**。
 * 中身は引数をget_post()に渡して投稿オブジェクトのpost_typeプロパティを返すだけ
   なので、特にループ中でなくても自由に使えると思うのですが、いかがでしょうか。
 *  [Toro_Unit (Hiroshi Urabe)](https://ja.wordpress.org/support/users/toro_unit/)
 * (@toro_unit)
 * [11年、 1ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%81%8c%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%81%9f%e5%a0%b4%e5%90%88%e3%81%ae%e6%9d%a1%e4%bb%b6%e5%88%86%e5%b2%90%e3%82%bf%e3%82%b0%e3%82%92/#post-196841)
 * ループ外で使うと、現在ロードされている投稿の一番最初のものの投稿タイプを返します。
 * 通常は、そこまで意識する必要は無いと思いますが、
    カスタムタクソノミー等、複数
   の投稿タイプが存在するようなものを取り扱うときは注意が必要です。
 *  モデレーター [けい (Kei Nomura)](https://ja.wordpress.org/support/users/mypacecreator/)
 * (@mypacecreator)
 * [11年、 1ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%81%8c%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%81%9f%e5%a0%b4%e5%90%88%e3%81%ae%e6%9d%a1%e4%bb%b6%e5%88%86%e5%b2%90%e3%82%bf%e3%82%b0%e3%82%92/#post-196858)
 * mura0403さん、x743さん、Toro_Unitさん、援護射撃ありがとうございます。
 * ijsdotnetさんのご質問とあまり逸れてしまうと申し訳ないので勝手にまとめます。
 * その後検証したところget_post_typeの動きについてはx743さんのご指摘通りループ外
   でも一応動きます。
    が、Toro_Unitさんの補足の通り「投稿の一番最初のものの」値
   を返すので、個人的に過去それでけっこうハマったことがありまして、、、。
 * なので、ijsdotnetさんが導いたように、条件分岐が目的なら
    `<?php if(is_post_type_archive('
   ポストタイプ' ) || is_singular('ポストタイプ' )): ?>` このやり方のほうが個人的
   にはシンプルで分かりやすいんじゃないかと思ってます。 せっかくそのための関数が
   用意されているので。
 * 条件分岐が目的じゃなくて、ポストタイプの値自体を出力したり加工したりする目的なら
   get_post_typeでいいと思います。
    でも、私はget_query_varを使うことが多いですね。
   こっちの方が個人的には扱いやすい気がしますので。（※個人の感想です）
 *  [x743](https://ja.wordpress.org/support/users/x743/)
 * (@x743)
 * [11年、 1ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%81%8c%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%81%9f%e5%a0%b4%e5%90%88%e3%81%ae%e6%9d%a1%e4%bb%b6%e5%88%86%e5%b2%90%e3%82%bf%e3%82%b0%e3%82%92/#post-196880)
 * Toro_Unitさん、mypacecreatorさん
 * 仰るとおりですね。私の主張だと他のループ内で使う関数と同じ条件になるので、的外れ
   でした。
    失礼いたしました。ありがとうございます。
 *  トピック投稿者 [ijsdotnet](https://ja.wordpress.org/support/users/ijsdotnet/)
 * (@ijsdotnet)
 * [11年、 1ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%81%8c%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%81%9f%e5%a0%b4%e5%90%88%e3%81%ae%e6%9d%a1%e4%bb%b6%e5%88%86%e5%b2%90%e3%82%bf%e3%82%b0%e3%82%92/#post-196967)
 * mypacecreator様をはじめ皆様ありがとうございます。
    私の質問でここまでの議論を
   していただき感謝いたします。
 * get_post_typeに関してですが、初心者には少々ハードルが高い印象を受けました。
    
   mypacecreator様ご教授のとおり`<?php if(is_post_type_archive( 'ポストタイプ' )
   || is_singular('ポストタイプ' )): ?>`を使用していこうと思います。
 * 質問の目的は果たせましたのでクローズとさせていただきます。
 * 本当にありがとうございましたm(_ _)m

9件の返信を表示中 - 1 - 9件目 (全9件中)

 トピック「カスタム投稿が表示された場合の条件分岐タグを教えてください」には新たに
返信することはできません。

## タグ

 * [カスタムポスト](https://ja.wordpress.org/support/topic-tag/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%9d%e3%82%b9%e3%83%88/)
 * [カスタム投](https://ja.wordpress.org/support/topic-tag/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95/)
 * [稿条件分岐タグ](https://ja.wordpress.org/support/topic-tag/%e7%a8%bf%e6%9d%a1%e4%bb%b6%e5%88%86%e5%b2%90%e3%82%bf%e3%82%b0/)

 * フォーラム: [使い方全般](https://ja.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 9件の返信
 * 5人の参加者
 * 最後の返信者: [ijsdotnet](https://ja.wordpress.org/support/users/ijsdotnet/)
 * 最後の活動: [11年、 1ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%81%8c%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%81%9f%e5%a0%b4%e5%90%88%e3%81%ae%e6%9d%a1%e4%bb%b6%e5%88%86%e5%b2%90%e3%82%bf%e3%82%b0%e3%82%92/#post-196967)
 * 状態: 解決済

## トピック

### 人気のトピック

### 返信がないトピック

### サポート関連ではないトピック

### 解決済みのトピック

### 未解決のトピック

### すべてのトピック
