自定义帖子类型的搜索页面

时间:2014-04-07 作者:user1512390

我是wordpress的新手,也是一名初学者,我在网上搜索,找到了解决方案,但仍然不起作用。

我有一个名为dlm_download, 我的自定义搜索模板不工作

我将以下内容添加到functions.php 文件-代码为from this answer 作者@罗纳德。

function template_chooser($template)
{
  global $wp_query;
  $post_type = get_query_var(\'post_type\');
  if( $wp_query->is_search && $post_type == \'dlm_download\' )
  {
    return locate_template(\'archive-download.php\');
  }
  return $template;
}
add_filter(\'template_include\', \'template_chooser\');
创建了archive-download.php

当我进行自定义搜索时,我会得到如下urlmysite.com/?dlm_download=699 什么都没发生我只是被重定向到我的主页。

有人能告诉我我做错了什么吗?

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

您只需使用以下命令在搜索中包含自定义搜索功能pre_get_posts

你可以这样做

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

add_action(\'pre_get_posts\',\'search_filter\');

结束

相关推荐

使用POSTS__NOT_IN时,PRE_GET_POSTS返回非属性对象

我正在显示某个类别中的帖子,并希望使用posts\\uu not\\u in显示除第一个之外的所有帖子。下面的代码返回非对象错误的属性。function modify_onthisday_cat( $query ) { if ($query->is_category(7) && $query->is_main_query() ) { global $post, $wp_query; s