前提・実現したいこと
WordPressのPHPは、基本的な項目以外はググりながらこなしている初心者です。
よろしくお願いいたします。
現在、WordPressの投稿(post)に三つのカテゴリー(仮にapple,banana,carrot)があり、それぞれを page-apple.php などのテンプレートで個別のページに表示させています。
・それぞれのカテゴリーに「先頭固定表示」が含まれていた場合は、特定のブロック内に記事を表示させる。
・記事中に「先頭固定表示」が含まれていない場合は、ブロック自体を表示させない。
ということを考えています。
発生している問題・エラーメッセージ
ページ単独では「先頭固定表示」の投稿が含まれていた場合はブロックの出し分けができるのですが、例えばカテゴリーappleのみ先頭固定の記事があり、banana、carrotに先頭固定の記事が含まれない場合、あとの2種類のページにもブロックの枠だけ表示されてしまいます。
これをどのように判定させればよいか、調べても分かりませんでした。
該当のソースコード
php
1<?php 2$args = array( 3'category_name' => 'apple', 4'post__in' => get_option( 'sticky_posts' ), 5); 6$the_query = new WP_Query( $args ); 7$sticky = get_option('sticky_posts'); ?> 8 9<?php if($sticky): ?> 10<!-- 記事のヘッダー --> 11<?php while ( $the_query->have_posts() ) : 12$the_query->the_post(); 13?> 14<!-- 記事の内容 --> 15<?php endwhile; ?> 16<!-- 記事のフッター --> 17<?php else : ?> 18<?php endif; ?> 19<?php wp_reset_postdata(); ?>
試したこと
変数 $args を各カテゴリーで個別の名前にするなど試行錯誤しましたが、上手く動きませんでした。
初心者の質問で恐縮ですが、よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
Local by Flywheel
Nginx
PHP7.4.1
MySQL 5.7.28
追記
こちらに投稿したあとに「それぞれカスタム投稿タイプを作った方が簡単では?」と思いつきました。
追ってこの方法を試してみます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/01 07:55