当前,当我加载搜索或结果页时,它会查询wp_postmeta
导致页面加载耗时的表。我意识到这是因为这个表太大(70k行),并且因为有多少数据加载到缓存中。
有没有办法阻止update_post_caches
在加载这些页面时被调用,然后在加载模板后向数据库发送自定义(且更高效)查询?
当前,当我加载搜索或结果页时,它会查询wp_postmeta
导致页面加载耗时的表。我意识到这是因为这个表太大(70k行),并且因为有多少数据加载到缓存中。
有没有办法阻止update_post_caches
在加载这些页面时被调用,然后在加载模板后向数据库发送自定义(且更高效)查询?
add_filter(\'pre_get_posts\', \'customize_query\');
function customize_query($query) {
if($query->is_main_query() && ($query->is_search() || $query->is_archive()) {
$query->set(\'update_post_meta_cache\', false);
$query->set(\'update_post_term_cache\', false);
}
}
然后wordpress将对这些页面少进行两次查询&;然后可以使用$wpdb对象编写自定义查询。这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在