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

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

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

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

PHP

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

Q&A

解決済

3回答

1295閲覧

PHPの配列?が複数の場合

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

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

PHP

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

0グッド

0クリップ

投稿2017/05/04 14:46

編集2017/05/04 15:02

お世話になります。
月で分類して画像を出力し分けようとしています。
IDで分類しているのですが、二つのIDを指定した場合、後の方は無視されてしまい出力されません。
よく分かっていないのですが、ネットで調べて
$term = array( "key1" => "35", "key2" => "36" );
このようにしてみたり
'terms' => array( "$term" ),

'terms' => array( ",", "$term" ),
このようにしてみたのですが、逆に警告が表示されてしまいました。

書き方の問題だと思うのですが、どのようにすれば二つのIDを指定する事ができますでしょうか。
専門的な知識も用語も乏しい為、説明も上手く出来ず申し訳ありませんがよろしくお願いします。

$month = date('n'); if((1 <= $month) && ($month <= 5)) { $term = 34; } elseif((6 <= $month) && ($month <= 6)) { $term = 36; } elseif((7 <= $month) && ($month <= 9)) { 以下の部分 $term = '35 , 36'; } elseif((10 <= $month) && ($month <= 12)) { $term = 34; } $args = array( 'post_type' => 'attachment', 'post_mime_type' => 'image', 'orderby' => 'rand', 'numberposts' => 1, 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'attachment_category', 'field' => 'id', 'terms' => array( "$term" ), ), ), 'date_query'=>array( array( 'inclusive' => 'ture', 'after' => '12 month ago', ) ) );

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

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

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

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

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

kei344

2017/05/04 14:59

$argsが途中で途切れていますので、最後まで記載いただけませんか?
退会済みユーザー

退会済みユーザー

2017/05/04 15:03

失礼しました。追記致しました。
guest

回答3

0

こんな感じでどうでしょう。

PHP

1$month = date('n'); 2if ( ( 1 <= $month ) && ( $month <= 5 ) ) { 3 $term = array( 34 ); 4} elseif ( ( 6 <= $month ) && ( $month <= 6 ) ) { 5 $term = array( 36 ); 6} elseif ( ( 7 <= $month ) && ( $month <= 9 ) ) { 7 $term = array( 35, 36 ); 8 9} elseif ( ( 10 <= $month ) && ( $month <= 12 ) ) { 10 $term = array( 34 ); 11} 12$args = array( 13 'post_type' => 'attachment' 14 , 'post_mime_type' => 'image' 15 , 'orderby' => 'rand' 16 , 'numberposts' => 1 17 , 'tax_query' => array( 18 'relation' => 'AND' 19 , array( 20 'taxonomy' => 'attachment_category', 21 'field' => 'term_id', // ← 22 'terms' => $term, // ← 23 'operator' => 'IN' // ← 24 , ) 25 , ) 26 , 'date_query' => array( 27 array( 28 'inclusive' => 'ture' 29 , 'after' => '12 month ago' 30 , ) 31 ) 32); // 未テスト

【WordPressの新機能 複数タクソノミークエリーまとめ | Simple Colors】
http://www.warna.info/archives/287/

投稿2017/05/04 15:23

kei344

総合スコア69364

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

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

退会済みユーザー

退会済みユーザー

2017/05/04 15:47

ご回答ありがとうございます。 shiroyukiさんの回答で希望通りの動作致しました。 真剣に考えて頂きましてありがとうございます。
guest

0

ベストアンサー

termsに文字列を入れたいのかarrayを入れたいのか数値を入れたいかがわからないのでなんとも言えないのですが

php

1 $term = array(35, 36); 2 3 'terms' => $term,

こういうことですか?

termsは必ずarray型であれば以下のようにするのが良いと思います

php

1if((1 <= $month) && ($month <= 5)) { 2 $term = array(34); 3} elseif((6 <= $month) && ($month <= 6)) { 4 $term = array(36); 5} elseif((7 <= $month) && ($month <= 9)) { 6 以下の部分 7 $term = array(35, 36); 8 9} elseif((10 <= $month) && ($month <= 12)) { 10 $term = array(34); 11}

投稿2017/05/04 15:19

編集2017/05/04 15:24
shiroyuki

総合スコア169

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

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

退会済みユーザー

退会済みユーザー

2017/05/04 15:45 編集

ご回答ありがとうございます。 このサイトの使い方もよく分かっていないので、おかしなことになっていたみたいです(;^_^A お教えいただきました内容に変更しましたら希望通りの動作を致しました。 ありがとうございます。
guest

0

単純に、
24行目の、
'terms' => array("$term")
が、文字列入れてるだけになってるからだと思いますよ。
変数の中身を入れるには、
'terms' => array($term)
ですよ。
ちなみに、テーマのスペルは、
Thema
です。

投稿2017/05/04 15:12

miyabi_takatsuk

総合スコア9528

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

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

退会済みユーザー

退会済みユーザー

2017/05/04 15:30

ご回答ありがとうございます。 お教えいただいたサイトを見て混乱しております。 もう少しヒントを頂けないでしょうか。
shiroyuki

2017/05/04 15:31

この書き方だと'terms'の中身は以下になってしまうと思います var_dump($args['tax_query']['terms']); array(3) { [0]=> string(1) "35 , 36" }
退会済みユーザー

退会済みユーザー

2017/05/04 15:51

ご回答ありがとうございます。 ネットで調べてたらvar_dumpとよく見かけるのですが、未だやり方が分かりません(;^_^A そのような事が出来れば、どのように出力されているのか把握出来るのでしょうが全く知識が追いつきません。 もっと勉強するよう努力します。
miyabi_takatsuk

2017/05/05 06:48

key344さん> 2点も間違い、お恥ずかしい・・・。 勉強になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問