我有一个自定义查询来排序和显示我的functions.php中的帖子,我注意到导航菜单在这些类别中消失了!
function my_filtro_ed_ordine( $query ) {
if ( is_admin()) {
return $query;
}
if ( (isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == 'viaggi-di-gruppo') || ( is_category(array(46, 4, 5, 6, 7, 8, 123, 161)) )) {
$expire = date('Ymd');
$query->set( 'meta_query', [
'relation' => 'OR',
[
'key' => 'partenza_al',
'value' => $expire,
'compare' => '>=',
'type' => 'NUMERIC',
],
[
'key' => 'partenza_al',
'compare' => 'NOT EXISTS',
],
]);
$query->set('orderby', 'meta_value');
$query->set('meta_key', 'partenza_al');
$query->set('order', 'ASC');
$query->set('meta_type', 'DATETIME');
}
return $query;
}
add_filter( 'pre_get_posts', 'my_filtro_ed_ordine' );
我不知道为什么菜单消失,有人知道为什么菜单消失吗? 任何帮助将不胜感激,谢谢!
PS:我已经尝试在
wp_nav_menu(array('theme_location' => 'primary-menu'));
中添加 if
,但该网站返回严重错误。
要修复,您需要从meta_query数组中删除meta_type参数这是更正后的代码
function my_filtro_ed_ordine( $query ) {
if ( is_admin()) {
return $query;
}
if ( (isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == 'viaggi-di-gruppo') || ( is_category(array(46, 4, 5, 6, 7, 8, 123, 161)) )) {
$expire = date('Ymd');
$query->set( 'meta_query', [
'relation' => 'OR',
[
'key' => 'partenza_al',
'value' => $expire,
'compare' => '>=',
'type' => 'DATE',
],
[
'key' => 'partenza_al',
'compare' => 'NOT EXISTS',
],
]);
$query->set('orderby', 'meta_value');
$query->set('meta_key', 'partenza_al');
$query->set('order', 'ASC');
}
return $query;
}
add_filter( 'pre_get_posts', 'my_filtro_ed_ordine' );