仅对我的自定义分类页面-数据进行自定义搜索

时间:2014-07-07 作者:user3209031

首先,我的帖子涉及:Link 1Link 2

我创建了自定义分类页面。我的自定义分类页面链接为

//本地主机/myproject/?运动=阿米尔·汗

此页面是自定义分类页面(注意:没有自定义页面,只有自定义分类)

但是现在有一个新的定制搜索页面的要求,在该页面中只搜索我的定制分类数据。例如,如果任何一个搜索“aamir khan”、“salman khan”,则提交后,在我的自定义搜索按钮上,应将同一页面视为我的自定义分类,而不是默认的wordpress搜索页面

因此,我在标题中添加了以下自定义搜索表单:

<form role="customsearch" method="get" id="customsearchform" action="<?php echo home_url(\'/\'); ?>">
<div>
<label for="s">Search for:</label>
<input type="text" value="" name="motion" id="motion" />
<input type="submit" id="customsearchsubmit" value="Search Motion" />
</div>
</form>
我已将自定义搜索按钮置于标题上方。php

因此,如果有人用“aamir khan”搜索,那么应该会看到自定义分类页面,但我得到

找不到页面

为什么找不到页面?因为,使用我的自定义搜索表单搜索后,生成的链接是:

//本地主机/myproject/?运动=阿米尔+汗

其中,生成的自定义分类法页面链接为:

//本地主机/myproject/?运动=阿米尔·汗

当任何人搜索“salman khan”或任何其他数据时也是如此:

//本地主机/myproject/?运动=萨尔曼+汗

但我实际生成的自定义分类链接是:

//本地主机/myproject/?运动=萨尔曼·汗

简而言之,如果在我搜索之后,我希望我的url-, 不适用于+

我只希望自定义搜索我的自定义分类数据页,因此,如果url重写,那么只需要自定义搜索表单

注意:我的默认搜索不应该生效,因为我也希望在我的网站中实现,因此,一个wordpress默认搜索按钮,另一个我的自定义搜索按钮,仅用于我的自定义分类页面。

1 个回复
SO网友:OmAk

您可以尝试使用pre\\u get\\u posts过滤器修改查询。

 function mod_query() {
    if ($query->is_main_query() && !is_admin() && is_search()) {

    // test print queried search terms
    print_r( $query->query_vars[\'s\'] );

    $search_terms = $query->query_vars[\'s\'];
    $search_terms = preg_replace(\'/\\s+/\', \'+\', $search_terms);

    // test print after replacing spaces with +
    print_r( $query->query_vars[\'s\'] );

    // if all going well you can change the vars again
    $query->set(\'s\', $search_terms);

    }
 }
 add_filter( \'pre_get_posts\', \'mod_query\' );
您可能需要修改它才能开始工作。但是,这可以引导您找到解决方案。

我不确定-但您可能需要将name=\'motion\'更改为name=\'s\'作为搜索字段的默认名称。我会注意这条线的。

结束

相关推荐

只将.htAccess用于WordPress安全性,无插件

目前,我正在为我的网站使用防弹wordpress安全,但当我安装W3 Total Cache插件时,它会给我带来一些与相关的错误。htaccess文件和防弹wordpress安全再次警告我继续单击创建。再次访问htaccess文件。现在,我的问题是。。只能使用吗。htaccess文件,其中包含完整的安全措施。并且不使用安全插件。?我已经找到了一些可以采取的严格措施。htaccess文件,并将在cpanel中为wp admin和wp login启用目录保护。php那么,我走对了吗。?