当我将此代码添加到functions.php
时
function meta_filter_posts( $query )
{
if(is_tag() && is_main_query())
{
$currentTagId = get_queried_object()->term_id;
$query->set('orderby','meta_value_num');
$query->set('meta_key', 'rank_tag_'.$currentTagId.'');
$query->set('order', 'ASC');
}
}
add_filter( 'pre_get_posts', 'meta_filter_posts' );
我的侧边栏custom menu
-小部件已经不工作了
小部件仅显示widget-title
,而不显示widget-content
其余部分,例如text
-窗口小部件工作正常。
但为什么呢?我的代码出了什么问题?
这里有两个问题:
-
使用
pre_get_posts
时,应始终确保仅针对前端。pre_get_posts
更改所有类型的查询前端和后端 -
is_tag()
和is_main_query()
应该是$query
的成员变量
你可以做一些类似的事情
if(!is_admin() && $query->is_tag() && $query->is_main_query())