限制WordPress搜索功能:自定义版本

时间:2019-08-23 作者:Brad Montgomery

我正在忙的网站是由另一家不再支持Wordpress的公司创建的,所以我正在寻求帮助。下面是搜索函数的PHP。从我所做的研究来看,他们似乎使用了标准的Wordpress代码。客户要求搜索只会搜索相关产品。目前,它是把一切与关键阶段,如博客帖子和标题。

<?php get_header(); ?>

    <div class="content pattern-background">
        <div class="wrapper">
          <h1>Search results:</h1>
          <div class="product-list">
           <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

        <div class="product-list__item" >

                <?php
            if(has_post_thumbnail()) {
            $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );
            } else {
            }
            ?>

              <a class="product__image" href="<?php the_permalink() ?>" style="background-image: url(<?php echo $url; ?>);">
              </a>
              <div class="product__details">
                <h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
                <p><?php the_excerpt(); ?></p>
                <div class="divider-solid"></div>
              </div>
            </div>
      <?php endwhile; ?>


  <?php else : ?>

  <div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
    <h2>Sorry, no items found.</h2>
  </div>

<?php endif; ?>
          </div>
        </div>


<?php get_footer(); ?>
有人可以指导我添加或删除什么代码吗?或者如果有文档可以帮助。

这是一个非常重要的客户,所以我很紧张,在我做对之前,我只会到处玩。

提前感谢

2 个回复
SO网友:zain_ali
This code will only search form woocommerce products. If you want to show any other search result from another post type you can do by simply change post type slug \'product\' with you own post type slug 
add_action( \'pre_get_posts\', \'wpse223576_search_woocommerce_only\' );
function wpse223576_search_woocommerce_only( $query ) {
  if( ! is_admin() && is_search() && $query->is_main_query() ) {
    $query->set( \'post_type\', \'product\' );
  }
}
SO网友:Mike Baxter

您提供的代码只是搜索的输出。您需要修改搜索表单本身。

在不确定你的舒适度的情况下,我推荐这篇文章"How to Limit Your Wordpress Search Results" 带您完成修改。

相关推荐

Calling hooks in functions

我习惯于使用主题挂钩,定期添加功能,但难以使用插件挂钩来过滤内容。这是我所知的极限,我试图理解这个过程,但没有用。我正在使用GigPress 管理事件。它允许您添加一个节目(基于日期),并将该节目与帖子(标准WP帖子)关联。我已经创建了一个自定义的帖子类型—productions—来关联节目,而不仅仅是一般的博客帖子。插件有一个钩子-gigpress_related_post_types —允许您用自己选择的任何CPT交换帖子。如果我直接编辑插件,它就会工作,将“帖子”替换为“产品”。如果我添加了我希望是