関連記事をいくつか表示→重複させないようにしたい
-
お世話になります。
質問させていただきます。やりたいのは、
記事詳細ページ(single-hoge.php)内に
「関連記事1」で同じ「投稿者名」の他の記事リンク表示、
「関連記事2」で同じ「会社名」の他の記事リンク表示です。※重複するので「関連記事1」に表示されているものは、
「関連記事2」では非表示にしたいのです。つまり、
●そのページの投稿者と、同じ「投稿者名」でくくるリンク群
●そのページの投稿者と同じではない、且つ、同じ「会社名」のリンク群
を作りたいのですが、上手く重複が消えたり消えなかったりします。<!–関連記事1ここから–>
<?php
$post_id = $post->ID;
$author = get_post_meta($post_id,’投稿者名’, true);
$args = array(
‘post_type’ => ‘hoge’,
‘numberposts’ => -1 ,
‘meta_query’ => array(
‘relation’ => ‘AND’,
array(
‘key’ => ‘投稿者名’,
‘value’ => $author,
),
)
);
$related_posts = get_posts( $args );
if (count($related_posts) >= 2) : // 必ず自分も含まれるので 2 以上foreach ($related_posts as $post) :
setup_postdata($post);
if ($post->ID!=$post_id) : // 自分は外す
?><?php echo get_post_meta($post->ID,”会社名”,true); ?>
<?php echo get_post_meta($post->ID,”投稿者名”,true); ?><?php
endif;
endforeach;
wp_reset_postdata();
endif;
?><!–関連記事1ここまで–>
<!–関連記事2ここから–>
<?php
$post_id = $post->ID;
$company = get_post_meta($post_id,’会社名’, true);
$author = get_post_meta($post_id,’投稿者名’, false);
$args = array(
‘post_type’ => ‘hoge’,
‘numberposts’ => -1 ,
‘meta_query’ => array(
‘relation’ => ‘AND’,
array(
‘key’ => ‘会社名’,
‘value’ => $company,
‘compare’ => ‘=’,
),
array(
‘key’ => ‘投稿者名’,
‘value’ => $author,
‘compare’ => ‘!=’,
),
)
);$related_posts = get_posts( $args );
if (count($related_posts) >= 2) : // 必ず自分も含まれるので 2 以上foreach ($related_posts as $post) :
setup_postdata($post);
if ($post->ID!=$post_id) : // 自分は外す
?>
<?php echo get_post_meta($post->ID,”会社名”,true); ?>
<?php echo get_post_meta($post->ID,”投稿者名”,true); ?><?php
endif;
endforeach;
wp_reset_postdata();
endif;
?>
<!–関連記事2ここまで–>↑
以前、pluto1234さまにお知恵を貸して頂いて
【解決済み】とさせていただいた記事を参考にしています。
http://ja.forums.wordpress.org/topic/12686?replies=9すいません、初歩的な事なのかもしれませんが、
どなたかお知恵を貸して頂けないでしょうか。
何卒よろしくお願い致します。
- トピック「関連記事をいくつか表示→重複させないようにしたい」には新たに返信することはできません。