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

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

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

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

PHP

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

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

Q&A

解決済

1回答

1363閲覧

Simple GA Rankingで、さらに複数のタームの絞り込みを行いたい

ColaFloat

総合スコア18

WordPress

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

PHP

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

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

0グッド

0クリップ

投稿2020/01/20 10:29

編集2020/01/21 09:56

■全体像

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(); ?>

上記のように指定してしまうと、
絞り込みではなく、両方含まれたものが表示されてしまったので、このやり方ではダメですね。。。

お忙しいところ大変恐縮ですが、
よろしくお願い致します。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。

foreach文で、取り出す方法ではなく、
WP_Queryとの組み合わせで、対応できました。

投稿2020/01/21 12:09

ColaFloat

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問