我有这个短代码:
add_shortcode('menu2','menu2');
function menu2($atts, $content = ''){
ob_start();
$options = shortcode_atts( array(
'post_type' => 'menu',
'posts_per_page' => -1,
'order' => 'ASC',
'tax_query' => array(
array(
'taxonomy' => 'menu_type',
'field' => 'slug',
'terms' => 'lunch_menu'
)
)
), $atts);
$query = new WP_Query($options);
我上面的代码是一个短代码,使用如下:
[menu2 terms="wines"]Wines[/menu2]
lunch_menu
应替换为wines
,但事实并非如此。我应该改变什么?
答案 0 :(得分:0)
您在错误的阵列上运行shortcode_atts()
。您需要tax_query
,但是您正在使用完整的数组。
我猜你需要这样的东西:
$tax_query = shortcode_atts(
array(
array(
'taxonomy' => 'menu_type',
'field' => 'slug',
'terms' => 'lunch_menu'
)
),
$atts
);
$options = array(
'post_type' => 'menu',
'posts_per_page' => -1,
'order' => 'ASC',
'tax_query' => $tax_query
);
'posts_per_page' => -1
非常非常危险。当您的用户拥有100k匹配帖子时会发生什么?不要那样做。