投稿とカスタム投稿タイプで条件分岐。
投稿のis_single()と、カスタム投稿タイプのis_archive()。
is_archive()ではパラメータを指定できない。
is_archive()の仕様。
WordPressでテーマを作っているとき、デザインを分けるためなどで、デフォルトの「投稿」と「カスタム投稿タイプ」を条件分岐したいときがある。
例えばアーカイブページやシングルページなどのヘッダー画像や、見出し部分、文章などを条件分岐で指定したいことはよくある。
is_archive()のカッコの中には入れられない。
ところが、投稿、カスカム投稿タイプに共通する「is_archive()」では、カスタム投稿タイプ用の「is_post_type_archive(‘○○○’)」やシングルページ用の「is_single(‘○○○’)」のようなパラメータの指定ができない。
(※○○○はスラッグ名など。)
テンプレート階層。
また、テンプレート階層でもarchive-○○○.phpがないとarchive.phpが適用される。なのでarchive-○○○.phpを作成しても、is_archive(‘○○○’)で指定ができないので、条件分岐が難しい。
画像出典:WordPress.org 日本語
is_archive()の代替案、解決策の例。
もしかしたら他の方法で振り分けることできるかもしれないが、ちょっとややこしくなりそうだ。
CSSのdisplay: none;でもやろうと思えばできるが、スマートな使い方とは言えない。
なので、手っ取り早い方法としては…
-○○○.phpで振り分ければ良い。
- デフォルトの投稿ページは、archive.php、single.php、header.phpを使う。
- カスタム投稿タイプページは、上記の3つのファイルを複製し、振り分けたい画像や見出し、文章などを差し替えて、archive-○○○.phpとsingle-○○○.php、header-○○○.phpを作成。
- 作成したarchive-○○○.phpとsingle-○○○.phpへ、get_header(‘○○○’)を記述して、header-○○○.phpを指定する。
archive-○○○.phpとsingle-○○○.phpへの記述例。
<?php get_header('○○○'); ?>
<!--メインやキーとなる画像や見出し、文章などの記述。-->
(※○○○はスラッグ名など。)
HTMLの文法的にも問題ない。
大体これで解決する。
書き出されるHTMLの文法も問題ない。
以上、参考になれば幸いです。
※Webデザインは実務数年、職業訓練校講師数年、フリーランス数年、計15年以上のキャリアがありますが、一気にがぁっと書いているので「です・ます調」ではありません。(元々はメモ書きでした。) ※事実や経験、調査や検証を基にしていますが、万一なにかしら不備・不足などがありましたらすみません。お知らせいただければ訂正いたします。 ※写真は主にUnsplashやPixabayのフリー素材を利用させていただいております。その他の写真や動画もフリー素材やパブリックドメイン、もしくは自前のものを使用しております。
WordPress 関連メモ。
- Simple Image XML Sitemapの使い方の例。画像サイトマップをGoogleへ。
- WordPressのリビジョン。正しく表示されないときの復元の例。
- PerplexityとWordPressの名前と意味合い。著作権と知的財産。
- WordPressのセキュリティ対策。脆弱性の疑問と強化設定。
- WordPressのテーマ。有料と無料の違いと、ウェブサイトの例。
- Googleアナリティクスでの自分のアクセスを除外。【WordPress】
- WordPressの不要なメディアファイルを削除する方法。Media Cleaner。
- WordPress 画像のキャプション表示を削除したい場合。
- WordPressのログインパスワードを変更する方法。セキュリティ対策にも。
- WordPressのトップページがindex.phpでもfront-page.phpでもhome.phpでも問題はない。
- reCAPTCHAの導入例と、バッジ(マーク)をCSSで非表示に。
- WordPressから届く「モデレートしてください」を止めたい。
- WordPress投稿の目次が消えたら!Table of Contents Plusの表示方法。
- 「データベース接続確立エラー」の対処。wp-configに問題がないとき。
- WordPressの投稿IDを確認したい時は、ここを見るのが簡単。
- WordPressのセキュリティをオンラインチェック、「Sucuri」。
- WordPress pタグを投稿記事から削除する1行のコード。
- アイキャッチ画像(WordPressのサムネイル画像)がない場合、いらない場合は、これで解決。
- さくらインターネットのコンテンツブーストの設定方法。(数ステップで。)
- さくらのサーバーからさくらのサーバーへの引越しで、「DNSゾーンが既に登録されています」のエラーが出たとき。
- WordPressで動画が再生されない!ときの対処。
- WordPressの投稿とカスタム投稿を振り分けたい時はこれで解決。(条件分岐できない時の対処方法。)
- 辿ったリンクは期限が切れています!? WordPressテーマのアップロードエラー対処。
- PHPの配列の括弧の違いは?WordPressでよく見るarray()と[]。
- Contact Form 7に確認画面がない!の対処方法。CSSか固定ページで。
- WordPressの引越しは、ささっとAll-in-One WP Migrationで。
- WordPressの検索ハイライト表示の仕方。(functions.phpに追加するだけ。)
- 引越しなどで、WordPressのメディアが消えた場合の、Moving Media Library。