私はいくつかの投稿を自動的に作成し、それらにタグを追加するコードを書きました。 [すべての投稿]管理パネルでタグを確認し、[タグ]投稿をクリックして、タグが付いた投稿のみを取得できます。
ただし、どのパラメーターを渡しても$ wp_queryを使用して作成しているプラグインでは、探しているタグがあるかどうかに関係なく、投稿の完全なリストが返されます。
これが私のコードです:
// Now retrieve all items matching this brand name . . .
$query=new WP_Query(array('posts_per_page=5', array('tag' => array($brand_name))));
// The Loop
while ( $query->have_posts() ) : $query->the_post();
echo '<li>';
the_title();
echo '</li>';
endwhile;
// Reset Post Data
wp_reset_postdata();
これは、5を返すように指示しただけで、10の結果を生成します。実際には、タグ付きの合計数であるため、2つの投稿しか返されません。
Webを見回すと、同じ問題を抱えているが解決策がない人がたくさんいるようです。私はタグを指定する約10の異なる方法を試したはずですが、返される投稿の数が間違っているという事実は、何か完全に間違っているか、何らかのバグがあることを示しています。 Wordpress役立つ場合、バージョンは3.4.1です。
Wordpressプロはこれに光を当てることができますか?
前もって感謝します !
これを試して
$original_query = $wp_query;
$wp_query = null;
$args=array('posts_per_page'=>5, 'tag' => $brand_name);
$wp_query = new WP_Query( $args );
if ( have_posts() ) :
while (have_posts()) : the_post();
echo '<li>';
the_title();
echo '</li>';
endwhile;
endif;
$wp_query = null;
$wp_query = $original_query;
wp_reset_postdata();
ここで答えが見つかりました- https://codex.wordpress.org/Template_Tags/get_posts
次の例では、「jazz」でタグ付けされた投稿を、「tax_query」を使用して「genre」カスタム分類の下に表示します
$args = array(
'tax_query' => array(
array(
'taxonomy' => 'genre',
'field' => 'slug',
'terms' => 'jazz'
)
)
);
$postslist = get_posts( $args );
だからあなたのためにそれは
$args = array(
'posts_per_page' => 5,
'tax_query' => array(
array(
'taxonomy' => 'post_tag',
'field' => 'slug',
'terms' => sanitize_title( $brand_name )
)
)
);
$postslist = get_posts( $args );
あなたのコードで、試してください:
$query=new WP_Query(array('posts_per_page=5', 'tag' => $brand_name));
の代わりに:
$query=new WP_Query(array('posts_per_page=5', array('tag' => array($brand_name))));
詳細については、 https://codex.wordpress.org/Class_Reference/WP_Query#Tag_Parameters を参照してください(最近の重複投稿で言及されています)。
注:$ brand_nameは文字列の配列、またはカンマ区切りの値などにすることができ、上記のコードは機能するはずです。
または、次を試してください。
$myPosts = get_posts(array('tag' => $brand_name));
https://codex.wordpress.org/Template_Tags/get_posts を参照してください