現在のカテゴリと同じタグからの投稿を1ページに表示しようとしています。
現在のカテゴリの投稿を以下のように表示しています。
<div class="row">
<?php
global $post;
$category = get_the_category($post->ID);
$category = $category[0]->cat_ID;
$myposts = get_posts(
array(
'numberposts' => -1,
'offset' => 0,
'category__in' => array($category),
'post_status'=>'publish',
'order'=>'ASC'
)
);
foreach($myposts as $post) :
setup_postdata($post); ?>
<div class="col-md-3 animation-element bounce-up cf" <?php post_class(); ?> id="post-<?php the_ID(); ?>">
<a class="test" href="<?php the_permalink(); ?>">
<?php echo get_the_post_thumbnail( $post->ID, 'large' ); ?> </a>
<p style="text-transform:uppercase;text-align:center;font-size:18px;margin-top:20px" class="title"><strong>
<?php the_title(); ?> </strong> </p>
</div>
<?php endforeach; ?>
<?php wp_reset_query(); ?>
</div>
しかし、現在の投稿と同じタグからも表示する方法は?
LTOありがとう!
タグは 分類法はpost_tag
です。あなたはそれらを tax_query
を介してget_posts()
で使うことができます。
wp_get_post_tags()
はオブジェクトの配列を返すので、クエリにはオブジェクトごとに1つのフィールドしか必要ないので、少し整理する必要があります。
$tag_objects = wp_get_post_tags($post->ID);
$tags = array();
foreach ($tag_objects as $tag_object) {
$tags[] = $tag_object->term_id;
}
$myposts = get_posts(array(
'numberposts' => -1,
'offset' => 0,
'category__in' => array($category),
'tax_query' => array(
array(
'taxonomy' => 'post_tag',
'field' => 'term_id',
'terms' => $tags,
),
),
'post_status'=>'publish',
'order'=>'ASC'
));