基本上我有一个帖子类型“产品”和一个分类法(“product_cat”),在这个帖子类型的单一视图中,我想要一个WP_Query
按以下标准列出帖子:
- 每页三个帖子
- 仅限“产品”帖子类型中的帖子
- 排除当前帖子
- 当前帖子有任何“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
这个问题让我很困惑,这并不是一个真正的大问题,但这真的让我很烦,所以如果有人有任何想法,将不胜感激。干杯!