我想从帖子类型中获取所有帖子book
在自定义分类法中book_tags
使用meta键lang
以及元价值en
.
我的代码:
<?php
$args = array(
\'post_type\' => \'book\',
\'posts_per_page\' => 40,
\'paged\' => "$paged",
\'meta_query\' => array(
array(
\'key\' => \'lang\',
\'value\' => \'en\',
\'compare\' => \'LIKE\'
)
),
\'tax_query\' => array(
array(
\'taxonomy\' => \'book_tags\',
\'field\' => \'slug\',
\'terms\' => get_queried_object()->slug
)
)
);
$additional_loop = new WP_Query($args);
while ($additional_loop->have_posts()) :
$additional_loop->the_post();
这不管用?为什么?
如果我删除“meta\\u query”,它就会工作。“meta\\u查询”中是否存在错误?
最合适的回答,由SO网友:helgatheviking 整理而成
因为在你的评论中,你说你只想要带有meta键的帖子lang=en
在自定义分类页面上,最简单的方法是使用pre_get_posts
在运行之前。
function wpa_107371_meta_query( $query ) {
if ( is_admin() || ! $query->is_main_query() )
return;
// only change the query on a custom taxonomy
// can check for a specific taxonomy if desired
if ( is_tax() ) {
//define our meta query
$meta_query = array(
array( // needs this nested array syntax to work
\'key\' => \'lang\',
\'value\' => \'en\',
\'compare\'=> \'=\',
),
);
$query->set(\'meta_query\', $meta_query);
return;
}
}
add_action( \'pre_get_posts\', \'wpa_107371_meta_query\' );