阻止在WP搜索结果页面中显示特定的自定义帖子类型

时间:2020-05-31 作者:The Chewy

我在我的函数中使用下面的代码从WP搜索中排除了某些页面。php文件。

我还需要排除名为“站点”的自定义帖子类型。

我似乎找不到与post__not_in 论点

我不想在下面的自定义帖子类型代码中删除它public => false 因为我仍然希望它有自己的url等。

有人知道如何从WP搜索中删除特定的自定义帖子类型吗?

任何帮助都会很好!

// EXCLUDE CERTAIN PAGES FROM SEARCH RESULTS (PAGE IDs IN ARRAY)

function tp_remove_pages( $query ) {
  if ( ! $query->is_admin && $query->is_search && $query->is_main_query() ) {
    $query->set( \'post__not_in\', array( 11,84,118,115,123,132 ) );
  }
}
add_action( \'pre_get_posts\', \'tp_remove_pages\' );

1 个回复
SO网友:Paul G.

您可以设置所需的帖子类型,而不是枚举不需要的页面ID。

如果你愿意的话,你当然可以将这两种方法结合起来,但下面我介绍了页面、帖子,以及如果你的网站上有其他类型的文章,你可能需要的另一种类型。

e、 g.:

function tp_remove_pages( $query ) {
  if ( ! $query->is_admin && $query->is_search && $query->is_main_query() ) {
    $query->set( \'post_type\', array( \'page\', \'post\', \'other_custom_type_you_want\' ) );
  }
}
add_action( \'pre_get_posts\', \'tp_remove_pages\' );
编辑:使用此代码“事后”修改搜索行为的另一种方法是在注册自定义帖子类型时更改其性质。为此,请使用exclude_from_search 注册帖子类型时的参数。

参考号:https://developer.wordpress.org/reference/functions/register_post_type/

您还可以设置public 参数到false 以获得类似的结果,尽管这可能会影响您的其他岗位类型的行为。

相关推荐

How to make a search form?

我在wordpress上迈出了第一步,新手。我发现我想制作一个具有自己风格的搜索表单,并使用一点javascript来重新标注尺寸。因此,我不知道应该如何从几个方面着手。使用get\\u search\\u form()方法检查和更改其样式是否更好?比如搜索字段类或html5 searchform<如果我的表单将有(许多)更改,那么从头开始创建自己的表单更好吗?如果最好使用get\\u search\\u form(),我会直接检查和更改样式吗?或者我是否支持html5并更改其样式?或者有没有办法将