要启用对自定义帖子类型存档的搜索,我使用pre_get_posts 钩将此代码添加到主题函数中。php文件。下面是一个在名为“的帖子类型”上启用搜索的示例;资源(&Q):
// Enable resource search
add_action(\'pre_get_posts\',\'pk_enable_resource_search\', 1000);
function pk_enable_resource_search( $query ) {
if ( $query->is_archive(\'resource\') && $query->is_main_query() && ! is_admin() ) {
$search = ! empty($_GET[\'rs\']) ? $_GET[\'rs\'] : false;
//Check for custom search
if($search) {
$query->set( \'s\', $_GET[\'rs\'] );
}
}
}
然后在存档页面上,您需要设置搜索表单:
<form class="archive-resource__search-form" action="<?php echo get_post_type_archive_link(\'resource\'); ?>">
<input type="text" placeholder="Search Resources" value="<?php echo $search_term; ?>" name="rs">
<button type="submit" class="far fa-search"></button>
</form>
最后,不要忘记在存档页面上查找和设置搜索词。将这些变量添加到搜索表单模板部件/归档模板的顶部:
$is_search = ! empty( $_GET[\'rs\'] ) ? true : false;
$search_term = $is_search ? $_GET[\'rs\'] : \'\';