■全体像
PHPは初心者です。
WordPress5.3.2
プラグインのランキング表示ができるSimple GA Ranking(バージョン2.0.11)を入れています。
投稿はデフォルトの一つのみ、
その中に、複数のカスタムタクソノミー・タームの設定をしています。
それぞれのタームの絞り込みを行いたいです。
以下のように設定しています。
■タクソノミー・ターム例
タクソノミー(fruit)
ターム(apple),ターム(orange),ターム(strawberry)
タクソノミー(animal)
ターム(dog),ターム(cat),ターム(bird)
テンプレートファイルは、
taxonomy-fruit-apple.php
で、行っています。
Simple GA Rankingを参考に、
タクソノミーを複数指定してみた所、
ANDではなく、ORの条件になってしまいます。
(後述の■ダメだった例ご参照ください)
■カスタムタクソノミーの絞り込みを行いたい
taxonomy-fruit-apple.php
内で、複数の絞り込みを行いたいです。
例でいうと、fruit-appleに含まれている、dog一覧を表示させたい!です。
こちらのブログ記事で、
【WordPress】「Simple GA Ranking」で同じカテゴリーの人気記事ランキングを作る方法
カテゴリーでの絞り込みを行っているのを見つけ、
変数名の組み合わせで、絞り込みを行う事ができそうだと思いました。
上記のブログでは、カテゴリーページでの組み合わせだったので、
変数同士の組み合わせのやり方がどうやったら良いのかわからなかったのですが、
GoogleAnalyticsの統計で人気記事が生成できる超軽量WPプラグイン
こちらのブログで、私初めて知ったのですが、
'post__in' => $変数名,
で、投稿の ID を使用することができるそうなので、
こちらで再度トライしてみました。
<?php $sga_args = array( 'display_count' => 10, 'period' => 30, 'post_type' => 'post', ); $ranking = sga_ranking_get_date($sga_args ); //ランキングデータが入っている $args = array( 'post__in' => $ranking , 'orderby' => 'post__in', 'tax_query' => array( array( 'taxonomy' => 'fruit', 'field' => 'slug', 'terms' => 'apple' ), array( 'taxonomy' => 'animal', 'field' => 'slug', 'terms' => 'dog', ),'relation' => 'AND', ) ); if ( !empty( $args ) ) : foreach ( $args as $post_id ): ?> <div> <article> <a href="<?php echo get_permalink($post_id); ?>"> <?php if (has_post_thumbnail($post_id)) : ?> <figure> <?php echo get_the_post_thumbnail( $post_id, 'post-thumbnails' );?> </figure> <?php else : ?> <?php endif ; ?> <h1> <?php echo get_the_title($post_id); ?> </h1> </a> </article> </div> <?php endforeach; endif; wp_reset_postdata(); ?>
上記だと、なぜか3つの枠だけが表示されていて、
サムネイル・タイトルなどの中身は表示されず、
上記の方法では、うまく取れてこれてないようです。。。
var_dump($ranking)
とすると、10件の記事番号が表示されています。
後もうちょっとかなと思うのですが、
アドバイスいただけると大変助かります・
■ダメだったもの
やってみてダメだった例を紹介します。
<?php $sga_args = array( 'display_count' => 10, 'period' => 30, 'post_type' => 'post', 'fruit__in' => 'apple', 'animal__in' => 'dog', ); $ranking_data = sga_ranking_get_date($sga_args ); if ( !empty( $ranking_data ) ): foreach ( $ranking_data as $post_id ): ?> <div> <article> <a href="<?php echo get_permalink($post_id); ?>"> <?php if (has_post_thumbnail($post_id)) : ?> <figure> <?php echo get_the_post_thumbnail( $post_id, 'post-thumbnails' );?> </figure> <?php else : ?> <?php endif ; ?> <h1> <?php echo get_the_title($post_id); ?> </h1> </a> </article> </div> <?php endforeach; endif; wp_reset_postdata(); ?>
上記のように指定してしまうと、
絞り込みではなく、両方含まれたものが表示されてしまったので、このやり方ではダメですね。。。
お忙しいところ大変恐縮ですが、
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。