更新默认搜索功能并获取后处理条目

时间:2015-12-17 作者:Adnan Ali

我想在中获取帖子元条目woocommerce. 当用户从默认搜索栏中搜索任何内容时。还应该从post元表返回数据。

所以基本上我需要修改默认搜索,使其能够从post元表中获取值。我是Wordpress的新手,我甚至不知道在哪里做更改,做什么。我必须编码,不需要任何插件。我正在使用wordpress 16

添加之类的内容

function search_filter($query) {
  if ( !is_admin() && $query->is_main_query() ) {
    if ($query->is_search) {
      $query->set(\'post_type\', \'post\');
    }
  }
}

add_action(\'pre_get_posts\',\'search_filter\');
如果我们在函数中添加页面,将从搜索中排除页面。phpI希望这样编码

1 个回复
SO网友:730wavy

我将在这里用我目前在项目中使用的代码帮助您。

首先,您需要将问题中提到的查询添加到主题的函数中。php文件。地雷看起来像这样--Search Query Function

如果您查看该代码,您会发现我有多个自定义字段和自定义分类法。在代码中,您可以看到用于最低价格和最高价格等的不同“比较”参数。如果你不理解它,我相信如果你学习它足够长的时间,它将开始对你有意义。只需替换/删除字段。

好的,为了使其与您的搜索表单相关联,您需要创建一个自定义表单,表单字段的名称属性与您在查询中设置的名称属性相同。通过该查询,我的搜索表单如下所示--Advanced Search Form

此外,表单中的某个位置必须有一个带有“s”参数的字段。它可以隐藏起来没有任何价值,但在我的网站上,如果我没有它,就永远找不到任何帖子。下面是我所指领域的一个例子,以及我是如何得到它的--

 <input type="search" id="s" name="s" title="Search" placeholder="Address (optional)" class="form-control hideit" value="Search"  />
在我的搜索中。php页面,我有一个正常的循环--

 <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
                        <?php get_template_part(\'search\',\'property\'); ?>
                    <?php endwhile; endif; wp_reset_query(); ?>
好吧,希望这能帮你找到正确的方向!

相关推荐

Media searching ignored

我们的网站使用WordPress,有很多媒体文件。我们网站的媒体名称格式如下[Car brand\'s name]-[number].jpg, 例如Tesla-1.jpg 或Aston Martin-3.jpg. 因此,我们可以通过搜索文章的名称轻松找到文章的特定媒体。但突然间,我们找不到媒体。我们正在尝试搜索名称为的媒体,但搜索结果不变。(不搜索任何内容时的媒体屏幕)(搜索Aston Martin时的媒体屏幕)当然,在填充搜索文本框后,它会显示一个加载图标,但结果总是一样的。为什么会发生这种情况?更新+