在URL中使用Slug的自定义POST类型搜索

时间:2017-12-11 作者:Randomer11

我有一个网站,有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>
感谢您的帮助。

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

在表单上,更改

action="<?php echo site_url(\'/\'); ?>"
收件人:

action="<?php echo esc_url( get_post_type_archive_link( \'club_societies\' ) ); ?>"
在哪里\'club_societies\' 是您正在搜索的帖子类型的slug。

这将把表单操作设置为添加了搜索参数的存档URL,而不是添加了搜索参数的主页。

结束

相关推荐

在URL中使用Slug的自定义POST类型搜索 - 小码农CODE - 行之有效找到问题解决它

在URL中使用Slug的自定义POST类型搜索

时间:2017-12-11 作者:Randomer11

我有一个网站,有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>
感谢您的帮助。

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

在表单上,更改

action="<?php echo site_url(\'/\'); ?>"
收件人:

action="<?php echo esc_url( get_post_type_archive_link( \'club_societies\' ) ); ?>"
在哪里\'club_societies\' 是您正在搜索的帖子类型的slug。

这将把表单操作设置为添加了搜索参数的存档URL,而不是添加了搜索参数的主页。

相关推荐