2011-04-30 9 views
0

これは私のワードプレスの質問ですが、ワードプレス関連の質問ではありません。それは私の質問は、私はまだmetavalueとしてmetakeyなようextra1testを持っている投稿だけでなく、extra2を持っている投稿を表示することができる方法であるテストこのphp文を組み合わせて、複数の変数入力の結果を得るにはどうすればよいですか?

<?php $customkey1 = extra1; ?> 
<?php $customvalue1 = test; ?> 
<?php query_posts('meta_key=' . $customkey1 . '&meta_value=' . $customvalue1 . ''); ?> 
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> 

<?php the_title(); ?> 

<?php endwhile; ?> 
<?php endif; ?> 

としてEXTRA1とmeta_valueとしてmeta_keyを持っている投稿を表示しますmetakeyとしてtest2を同じクエリーでメタベルとして使用します。 2つ以上の変数の組み合わせ。

+1

質問に答える時間がなく、ただのコメントです:なぜすべての行にを入れますか? – gd1

+0

私は確かに、これはWordpress固有の質問です。なぜなら、query_postsはwordpress関数だからです。 –

+0

おそらくそれはHtmlと混在しているWordPressのテーマファイルです。あなたはそれをするべきだと言っているわけではありません。 – rzetterberg

答えて

0

したがって、2つのクエリの結果を結合しますか? Check this out 2つのクエリオブジェクトを作成し、それらを結合するだけでよいでしょう。

ような何か(ノート、私はWordPressがインストールされている、また、ワードプレスを使用しますが、そのAPIは嘘ではないと仮定しないでください。):

<?php 

// The Query 
$the_query = new WP_Query($args); 
$the_second_query = new WP_Query($args); 

// The Loop 
while ($the_query->have_posts()) : $the_query->the_post(); 
    echo '<li>'; 
    the_title(); 
    echo '</li>'; 
endwhile; 

// The Second Loop 
while ($the_second_query->have_posts()) : $the_second_query->the_post(); 
    echo '<li>'; 
    the_title(); 
    echo '</li>'; 
endwhile; 

// Reset Post Data 
wp_reset_postdata(); 
?> 

注:これは醜い、恐ろしいです、と動作しますが、ほとんどの場合、専門家は間違っているとみなすべきです。もっとエレガントに、少なくとも私はポストを解析する関数を使います。最もエレガントに、私は他の場所で提案されていることを行い、結合されたクエリをMySQLビットでカプセル化します。しかし、オペアの知識があれば、これはすぐにこの問題を素早く解決する "最良のアプローチ"と思われます。 (このアプローチを繰り返し適用すると、厄介な悪夢に変わる)

+0

つまり、必要な各クエリで新しいWP_Queryオブジェクトを作成します。各クエリを実行し、その結果を必要なすべての投稿を保持する単一の配列に追加します。その後、投稿を出力します。 –

+1

おそらく、PHPでそれらをまとめなければならない代わりに、mysqlで直接選択するWP_Queryオブジェクトを使ってカスタムクエリを書く方がよいでしょう。 – rzetterberg

+0

あなたのお返事ありがとうございます。あなたは私にあなたが手伝っているものの例を投稿できますか? – EnexoOnoma

関連する問題