在摸索了一天半之后,我找到了一个解决办法。
除了表单操作之外,我的主题中没有控制搜索结果的内容,这些操作包括:
<!-- Search Result Page -->
<form action="<?php echo home_url(\'/\');?>" method="get" data-javo-patch-form-for-result>
<input type="hidden" name="post_type" value="item">
<input type="hidden" name="location" value="<?php echo $javo_query->get(\'location\');?>" data-javo-sf-location>
<input type="hidden" name="s" data-javo-sf-keyword>
</form>
<!-- /data-javo-patch-form-for-result : Go to Archive Page -->
因此,利用这样的代码(我之前有过这样的代码)
wasn\'t an option 对于这个特定的关键字搜索,我无法找到它。
remove_all_filters(\'posts_orderby\');
$args = Array(
\'post_type\' => \'item\'
, \'meta_key\' => \'level\'
, \'orderby\' => array(\'meta_value_num\' => \'ASC\', \'title\' => \'ASC\')
, \'post_status\' => \'publish\'
, \'posts_per_page\' => $ppp
, \'paged\' => $page
);
$the_query = new WP_Query( $args );
相反,搜索功能基于查询。wp中的php包括。我着手修改这个文件,但发现太难了。
解决方案是使用pre\\u get\\u posts,只针对搜索查询。
add_action( \'pre_get_posts\', \'custom_get_posts\' );
function custom_get_posts( $query ) {
if ( is_admin() || ! $query->is_main_query() )
return;
if ( $query->is_search() ) {
$query->set( \'meta_key\', \'level\' );
$query->set(\'orderby\', array(\'meta_value\' => \'ASC\', \'title\' => \'ASC\'));
}
}
希望这能让人免于头痛。