基本的に、投稿タイプ「製品」と分類 (「product_cat」) があり、この投稿タイプの単一のビューでWP_Query
、次の基準で投稿を一覧表示する必要があります。
- 1 ページあたり 3 つの投稿
- 「商品」投稿タイプの投稿のみ
- 現在の投稿を除外する
- 現在の投稿に含まれる「product_cat」分類用語があります
次のクエリを使用してこれを達成しました。
global $post;
$taxonomy = 'product_cat';
$have_you_read_query = new WP_Query(
array(
'posts_per_page' => 3,
'post_type' => 'product',
'post__not_in' => array($post->ID),
'tax_query' => array(
array(
'taxonomy' => $taxonomy,
'field' => 'slug',
'terms' => m_explode(get_terms($taxonomy), 'slug')
)
)
)
);
m_explode
関数が何をするのか疑問に思っている場合は、次のとおりです。
function m_explode(array $array, $key = '') {
if( !is_array($array) or $key == '') return;
$output = array();
foreach( $array as $v ) {
if( !is_object($v) ) {
return;
}
$output[] = $v->$key;
}
return $output;
}
私がこれで抱えている唯一の問題は、「product_cat」用語が添付されている投稿がまったくない場合、次のエラーが発生することです:
Notice: Undefined offset: 0 in C:\Users\Tom\Dropbox\Localhost\wordpress\wp-includes\query.php on line 2473
この問題は私を困惑させました、それは実際には大きな問題ではありませんが、それは私を本当に悩ませているので、誰かが何か考えを持っていれば大歓迎です. 乾杯!