问题描述

我有一个搜索字段的博客帖子,但我需要一个其他的自定义帖子类型。如何创建具有不同搜索结果布局的自定义搜索表单?

最佳解决方案

这是我试过的,并得到一个解决方案 3 步。假设您的自定义帖子类型是”products”

1 。在这里添加功能码可以指定 archive-search.php

 function template_chooser($template)
{
  global $wp_query;
  $post_type = get_query_var('post_type');
  if( $wp_query->is_search && $post_type == 'products' )
  {
    return locate_template('archive-search.php');  //  redirect to archive-search.php
  }
  return $template;
}
add_filter('template_include', 'template_chooser');

2 。创建自定义帖子类型的搜索结果模板 (search-archive.php)

        <?php
        /* Template Name: Custom Search */
        get_header(); ?>
        <div class="contentarea">
            <div id="content" class="content_right">
                     <h3>Search Result for : <?php echo "$s"; ?> </h3>
                     <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
                <div id="post-<?php the_ID(); ?>" class="posts">
                     <article>
                    <h4><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a><h4>
                    <p><?php the_exerpt(); ?></p>
                    <p align="right"><a href="<?php the_permalink(); ?>">Read     More</a></p>
                    <span class="post-meta"> Post By <?php the_author(); ?>
                     | Date : <?php echo date('j F Y'); ?></span>

                    </article><!-- #post -->
                </div>
        <?php endwhile; ?>
    <?php endif; ?>




           </div><!-- content -->
        </div><!-- contentarea -->
        <?php get_sidebar(); ?>
        <?php get_footer(); ?>
  1. 构建搜索表单在此搜索表单中,值”products” 被隐藏,它将仅搜索产品帖子。

     <div>
        <h3>Search Products</h3>
        <form role="search" action="<?php echo site_url('/'); ?>" method="get" id="searchform">
        <input type="text" name="s" placeholder="Search Products"/>
        <input type="hidden" name="post_type" value="products" /> <!-- // hidden 'products' value -->
        <input type="submit" alt="Search" value="Search" />
      </form>
     </div>
    

更多我想链接到这里 http://www.wpbeginner.com/wp-tutorials/how-to-create-advanced-search-form-in-wordpress-for-custom-post-types/

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。