将自定义帖子类型/字段添加到Wordpress搜索

时间:2014-03-26 18:06:53

标签: php html wordpress

我正在寻找一种简单的方法,将自定义字段中包含自定义字段的支持添加到我的Wordpress网站中的搜索功能中。我可以通过编程方式或使用插件来完成它,但我尝试过的插件毫无意义。

目前,当我搜索时,我的自定义帖子类型的标题只会出现在搜索中,但我希望能够通过我的帖子类型,帐户,例如与之相关的人员搜索那个帐户。基本上我希望能够键入Johnny Appleseed,即使他的帐户名称不是他的名字,他的名字也是一个名为contact_name的自定义字段。

如何做到这一点?

2 个答案:

答案 0 :(得分:0)

添加此“'query_var'=> true,”

在创建自定义帖子类型时添加以上代码。

了解更多信息,请点击此处:https://codex.wordpress.org/Function_Reference/register_post_type

如果您使用任何插件,则代码下方的用户


add_filter( 'pre_get_posts', 'tgm_cpt_search' );
/**
* This function modifies the main WordPress query to include an array of post types instead of the default 'post' post type.
*
* @param mixed $query The original query
* @return $query The amended query
*/
function tgm_cpt_search( $query ) {
if ( $query->is_search )
$query->set( 'post_type', array( 'post', 'movies', 'products', 'portfolio' ) );
return $query;
};

答案 1 :(得分:0)

您不需要插件,您需要在主题的根目录中修改(或创建)search.php。在archive.php之后和主循环内部建模

<?php while (have_posts()) : the_post(); ?>
  //output post information here
<?php endwhile; ?>

你可以打开get_post_type()并根据它显示不同的信息。

<?php while (have_posts()) : the_post(); ?>
  if(get_post_type() == "custom_type")
  {
    //load custom fields and output here
  }
  else
  {
    //output normal post info here ala the_title(), the_excerpt(), etc...
  }
<?php endwhile; ?>