我真的需要帮助。下面是我的搜索结果的wp页面模板search.php
的代码,一切都很好。现在,该网站是关于公共活动的,所以按活动日期显示搜索结果非常重要。我创建了一个名为"日期"的自定义字段,我想按"日期"字段值显示结果。
我花了整整一周的时间寻找解决方案,但不幸的是,我没能找到。请帮帮我:)
这是一个代码:
<?php
global $query_string;
$query_args = explode("&", $query_string);
$search_query = array();
if( strlen($query_string) > 0 ) {
foreach($query_args as $key => $string) {
$query_split = explode("=", $string);
$search_query[$query_split[0]] = urldecode($query_split[1]);
}
}
$search = new WP_Query($search_query);
?>
<?php if ($search->have_posts()) : while ($search->have_posts() ) : $search->the_post(); ?>
<!-- loop goes here -->
<?php endwhile; else: ?>
<?php endif; ?>
谢谢!!!!
我会尝试其他东西:
在您的functions.php
或my-plugin.php
中
add_filter( 'pre_get_posts', 'customize_search_page' );
function customize_search_page($query){
if(!is_admin() && $query->is_search && $query->is_main_query()){
$query->query_vars['meta_key'] = 'your_meta_key';
$query->query_vars['orderby'] = 'meta_value';
$query->query_vars['order'] = 'DESC';
}
return $query;
}
我没有测试它,但在循环之前会调用pre_get_posts
过滤器。如果是正确的查询(搜索和主查询),我将orderby
更改为按元值排序。