我有一个网站,有6个自定义的帖子类型,每一个都有一个搜索功能,只搜索特定的帖子类型。
搜索按预期进行,并显示搜索结果。每个自定义帖子类型还具有一些自定义字母顺序分页,这些分页也显示在搜索结果页面上,这将查看自定义帖子类型存档,但当您从该存档中搜索时,搜索URL将恢复为根。例如:
mydomain.com/?s=Walsall&post_type=clubs
但要使我的分页工作正常,搜索需要保留其CPT slug,如下所示:
mydomain.com/clubs/?s=Walsall&post_type=club_societies
然后应该显示所需的结果(我想?)。
这是Im当前在每个CPT存档页上使用的表单:
<div class="et_pb_search et_pb_module et_pb_bg_layout_light et_pb_text_align_left et_pb_search_0 clear">
<form role="search" action="<?php echo site_url(\'/\'); ?>" method="get" class="et_pb_searchform">
<input type="search" class="et_pb_s" placeholder="<?php echo esc_attr_x( \'Search Clubs...\', \'placeholder\' ) ?>" value="<?php echo get_query_var(\'clubs\'); ?>" name="s" title="<?php echo esc_attr_x( \'Search for:\', \'label\' ) ?>" />
<input type="hidden" name="post_type" value="clubs" /> <!-- // hidden \'players\' value -->
<input type="submit" class="et_pb_searchsubmit" alt="Search" value="Search" />
</form>
</div>
感谢您的帮助。
最合适的回答,由SO网友:Jacob Peattie 整理而成
在表单上,更改
action="<?php echo site_url(\'/\'); ?>"
收件人:
action="<?php echo esc_url( get_post_type_archive_link( \'club_societies\' ) ); ?>"
在哪里
\'club_societies\'
是您正在搜索的帖子类型的slug。
这将把表单操作设置为添加了搜索参数的存档URL,而不是添加了搜索参数的主页。