我真的需要帮助。下面是搜索结果search.php
的wp页面模板的代码,一切正常。现在,该网站是关于公共活动的,因此按事件日期显示搜索结果非常重要。我创建了一个名为" date"的自定义字段。我希望通过" date"显示结果。字段值。
我花了整整一个星期才找到解决方案,但遗憾的是我无法解决问题。请帮帮我:)
这是一段代码:
<?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; ?>
谢谢!!!!
答案 0 :(得分:0)
我会尝试别的东西:
在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
更改为按元值排序。