【问题标题】:Custom WordPress Search自定义 WordPress 搜索
【发布时间】:2018-01-08 18:54:42
【问题描述】:

我有一个自定义帖子类型“艺术家”。我的 3 位艺术家中的每一位都有单独的艺术家页面。我将我的默认 wordpress 搜索限制为仅在 functions.php 文件中使用它来搜索“艺术家”帖子类型。

   function searchfilter($query) {

    if ($query->is_search && !is_admin() ) {
    $query->set('post_type',array('Artist'));
    }
    return $query;
    }
    add_filter('pre_get_posts','searchfilter');

现在,我如何确保如果我输入艺术家姓名,它会在艺术家页面而不是默认搜索页面上显示搜索结果。

例如,如果我在搜索框中输入 John,搜索结果应该会显示包含单词 John 的艺术家页面的所有内容。

这里是 search.php 代码

      <?php
    if ( have_posts() ) : ?>

        <?php 
        /* Start the Loop */
        while ( have_posts() ) : the_post();

            /**
             * Run the loop for the search to output the results.
             * If you want to overload this in a child theme then include a file
             * called content-search.php and that will be used instead.
             */
            <?php the_title(); ?>
            <?php the_content(); ?>

        endwhile;

        the_posts_navigation();

    else :


        get_template_part( 'template-parts/content', 'none' );

    endif; ?>

【问题讨论】:

  • 搜索结果将显示所有具有关键字的artist 页面,而不仅仅是一个艺术家页面。您只想显示一页吗?如果用户搜索两个艺术家页面中的关键字,您希望发生什么?
  • 嗨,阿米特,所以,如果我输入 John,它应该会显示所有页面上包含单词 John 的所有 div。如果单词 john 在两个页面上,它应该显示包含单词 John 的两个页面的所有 div。现在我正在获取包含单词 John 的所有页面的标题

标签: php wordpress advanced-custom-fields


【解决方案1】:

好的,所以您也想显示搜索到的帖子的内容。 查询帖子和显示结果是两件不同的事情。您在此处编写的所有代码都是修改query,以便只显示Artist 类型的帖子。要显示结果,您必须在某处的搜索结果上运行循环。添加一行以显示那里的内容(搜索the_contentget_the_content)。

【讨论】:

  • 请参考上面添加的代码。它仍然只显示标题而不是内容。我试图展示的内容是使用 ACF 构建的。但它不会出现在搜索结果中。
  • 您提供的所有信息都是这样零碎的:)。如果内容来自 ACF,那么您需要从 acf 内容中获取字段。立即搜索get_fieldthe_field 或从advancedcustomfields.com/resources/get_field 获取信息
  • 我该怎么做呢?我有一个自定义字段“描述”。如果它包含单词 John 我如何在搜索结果页面上显示它?
  • 假设description 是您的自定义字段的ID,the_field('description')the_content(); 之后应该可以解决问题。
  • 你的意思是这样
猜你喜欢
  • 1970-01-01
  • 2016-12-18
  • 2017-04-05
  • 2015-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多