Php 基于类别的搜索结果

Php 基于类别的搜索结果,php,wordpress,Php,Wordpress,因此,我有下面的文章类型过滤器吐出来,但我怎么能使用类别或自定义字段 $categories = array( 'post' => 'Articles', 'mobile-experience' => 'Mobile', 'staff-profiles' => 'Staff Profiles', 'events' => 'Events', 'page' => 'Page Content

因此,我有下面的文章类型过滤器吐出来,但我怎么能使用类别或自定义字段

 $categories = array(
        'post' => 'Articles',
        'mobile-experience' => 'Mobile',
        'staff-profiles' => 'Staff Profiles',
        'events' => 'Events',
        'page' => 'Page Content',);
我只是想更改wordpress搜索结果页面,以填充其类别下的内容

搜索关键字汽车

类别1

汽车(此类别中的汽车项目)

第2类

汽车(此类别中的汽车项目)

第3类

未找到任何内容(未在此类别中找到任何cars项目)

等等

搜索关键字汽车

将抓取任何带有关键字Cars的内容并在类别下填充(在2个类别下找到带有关键字Cars的项目,而不是3个类别下找到的项目;找到的任何地方都将填充)

基本上不是用关键词Cars拍摄所有项目;它显示他们在哪个类别下搜索到的结果

我只有3个类别

最近的尝试(尝试2个类别)



如果您有另一个数组,比如$categories2,您可以执行以下操作:


$result=array\u merge($categories,$categories2)

只需使用jquery在搜索表单中添加一个隐藏字段

每个类别都有自己独特的主体类,您可以使用该类仅为不同类别添加不同的隐藏字段

您可以使用Jquery prepend或append

(function($){ 

    //First Category
    $('.your-category-body-class .your-search-form-class').prepend('<input type="hidden" id="foo" name="category_name" value="your-category-slug" />');

    //Second Category

    $('.your-second-cat-body-class .your-search-form-class').prepend('<input type="hidden" id="foo" name="category_name" value="your-second-cat-slug" />')

})(jQuery)
您可以通过我上面提供的jquery实现这一点,您只需要获得正确的选择器

或者只是创建自己的搜索表单

function my_custom_search_form() {
    echo '<form method="get" class="search-form" action="http://your-site.com/" role="search">'."\n";
    echo '<input type="search" name="s" placeholder="Search Movie...">'."\n";
    if( is_category('your-category-slug-or-id') ) {
        echo '<input type="hidden" id="foo" name="category_name" value="your-category-slug" />'."\n";
    } elseif(is_category('your-second-slug-or-id')) {
        echo '<input type="hidden" id="foo" name="category_name" value="your-second-slug-or-id" />'."\n";
    }
    echo '<input type="submit" value="Search">'."\n";
    echo '</form>';
}
function my\u custom\u search\u form(){
回显“”。“\n”;
回显“”。“\n”;
如果(是_类别('your-category-slug-or-id')){
回显“”。“\n”;
}elseif(是_类别('your-second-slug-or-id')){
回显“”。“\n”;
}
回显“”。“\n”;
回声';
}
然后只需使用
my\u custom\u search\u form()
而不是wordpress默认搜索表单

function my_custom_search_form() {
    echo '<form method="get" class="search-form" action="http://your-site.com/" role="search">'."\n";
    echo '<input type="search" name="s" placeholder="Search Movie...">'."\n";
    if( is_category('your-category-slug-or-id') ) {
        echo '<input type="hidden" id="foo" name="category_name" value="your-category-slug" />'."\n";
    } elseif(is_category('your-second-slug-or-id')) {
        echo '<input type="hidden" id="foo" name="category_name" value="your-second-slug-or-id" />'."\n";
    }
    echo '<input type="submit" value="Search">'."\n";
    echo '</form>';
}
编辑

您可以通过在表单上添加隐藏的输入字段来自定义搜索查询参数

如果你想搜索整个数据库,那是默认的wordpress搜索框, 像这样返回url
http://your-site.com/?s=Your+搜索+短语

如果您想在特定类别内搜索,则需要使用搜索表单返回URL,如下所示
http://your-site.com/?s=Your+搜索+短语和类别\名称=你的类别slug

如果您想在两个类别中搜索,那么您需要使用搜索表单返回url liek this
http://your-site.com/?s=Your+搜索+短语&cat=1,2
,其中12是您的类别ID,或组合类别段塞<代码>http://your-site.com/?s=Your+搜索+短语和类别\名称=你的第一类鼻涕虫,第二类鼻涕虫


您只需在搜索表单上添加隐藏值,即可添加符合您需要的参数

您是否正在考虑
array\u merge()
可能?你有一个你想做什么的例子吗?在你编辑之前,我根据我对问题的理解回答了这个问题,但我不理解你的编辑,你能解释一下吗?我有一个wordpress网站——有类别,试图调整搜索结果页面,以允许结果填充到他们的类别中。我不想更改搜索功能,但只允许结果在结果页面的类别下分组。好的,明白了,你能举个例子吗,你问题中的一个不是特别清楚。现在有意义吗?我只想在分类中对结果进行分组,但这不会同时显示包含关键字的两个或所有分类?谢谢,但我如何在3个不同的区域打印这些搜索结果?!这是第1区:
<form method="get" class="search-form" action="http://your-site.com/" role="search">
    <input type="search" name="s" placeholder="Search Movie...">
    <input type="hidden" id="foo" name="category_name" value="your-category-slug" />
    <input type="submit" value="Search">
</form>
function my_custom_search_form() {
    echo '<form method="get" class="search-form" action="http://your-site.com/" role="search">'."\n";
    echo '<input type="search" name="s" placeholder="Search Movie...">'."\n";
    if( is_category('your-category-slug-or-id') ) {
        echo '<input type="hidden" id="foo" name="category_name" value="your-category-slug" />'."\n";
    } elseif(is_category('your-second-slug-or-id')) {
        echo '<input type="hidden" id="foo" name="category_name" value="your-second-slug-or-id" />'."\n";
    }
    echo '<input type="submit" value="Search">'."\n";
    echo '</form>';
}