我正在尝试修改(优化?)Worpress使用WP\\u查询搜索结果,如前所述in the Codex. 这篇文章中的片段位于搜索模板PHP文件的顶部,所有结果都会相应地显示出来。
当我尝试用我选择的参数附加WP\\u Query数组时,为了创建一个修改后的查询(例如:包含术语用户搜索的帖子,不包括在某个分类中),WP\\u Query完全忽略附加的参数,并再次提供原始搜索结果。
代码如下:
$search = new WP_Query(array( \'taxonomy\' => \'media\', \'field\' => \'image\', \'operator\' => \'NOT IN\'));
我也这样试过,但我觉得完全错了:
<?php
global $query_string;
$query_args = explode("&", $query_string);
$search_query = array();
foreach($query_args as $key => $string) {
$query_split = explode("=", $string);
$search_query[$query_split[0]] = urldecode($query_split[1]);
} // foreach
$args = array(
\'tax_query\' => array(
array(
\'taxonomy\' => \'media\',
\'field\' => \'slug\',
\'terms\' => \'media\',
\'operator\' => \'NOT IN\'
)
),
$search_query
);
通常情况如下:
if ( $search->have_posts() ) :
while ($search->have_posts() ) : $search->the_post(); ?>
当谈到编码时,我不是很流利,但我试图教自己作为CMS的Wordpress的怪癖。我在这个网站上阅读了所有回复,但没有一种方法能帮我做到这一点。
你能看出我做错了什么吗?谢谢
SO网友:Seagyn Davis
您只需将搜索的当前查询与您要添加的部分合并,您已经接近要添加的部分。
我假设您有一个名为media的自定义分类法,并且您特别希望在搜索结果中删除带有术语media(如标签或类别中的术语)的帖子
在您的情况下:
$custom_query = array();
$custom_query[\'tax_query\'][] = array( \'taxonomy\' => \'media\', \'terms\' => array(\'media\'), \'field\' => \'slug\', \'operator\' => \'NOT IN\' );
$args = array_merge( $wp_query->query, $custom_query );
query_posts( $args );