将搜索和过滤功能添加到自定义循环

时间:2019-10-31 作者:lastnoob

我有一个自定义的帖子类型和一个循环浏览它们的页面。我正在尝试对页面进行插件搜索和过滤,以便人们可以过滤自定义帖子。

然而,它目前不起作用。。。它只是求助于常规的wordpress搜索。

我该如何将其实现到我的循环中?

这是我的循环:

                <div class="meetup-groups">

            <?php
            $loop = new WP_Query( array(
                \'post_type\' => \'meetup_groups\',
                \'posts_per_page\' => -1
            )
            );
            ?>

            <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>

            <!-- do stuff -->
            <a href="<?php echo esc_url( get_field(\'meetup_group_link\') ); ?>">
                <div class="meetup-card">
                <div class="meetup-overlay"></div>
                <img src="<?php the_post_thumbnail(\'medium\'); ?>">
                <div class="meetup-card-text"><h3><?php the_title(); ?></h3>
                <div class="meetup-location"><h4><?php the_field(\'city\'); ?><br><?php the_field(\'country\'); ?></h4></div></div>
            </div></a>



            <?php endwhile; wp_reset_query(); ?>

            </div>

1 个回复
SO网友:Firdaus Rudy

您必须为您的帖子类型创建不同的搜索表单,以便可以根据帖子类型显示搜索结果。

您可以将其添加到搜索表单中

<input type="hidden" name="post_type" value="meetup_groups">
示例:

<form method="get" id="my-custom-searchform" action="<?php echo esc_url(home_url( \'/\' )); ?>">
        <input type="text" value="<?php the_search_query(); ?>" name="s" id="s" placeholder="<?php echo esc_attr__( \'Search ...\', \'text-domain\' ); ?>" />
        <button type="submit"><?php echo esc_html__(\'Search\',\'text-domain\'); ?></button>
<input type ="hidden" name="post_type" value="meetup_groups">
</form>
您还必须更改文件search.php按您认为合适的方式显示。

您必须创建一个包含类似内容的文件才能显示帖子类型搜索。

例如,我做了一个meetup-groups.php 使用以下代码创建文件。


 <div class="meetup-groups">



            <?php if (have_posts()) : while (have_posts()) : the_post();  ?>

            <!-- do stuff -->
            <a href="<?php echo esc_url( get_field(\'meetup_group_link\') ); ?>">
                <div class="meetup-card">
                <div class="meetup-overlay"></div>
                <img src="<?php the_post_thumbnail(\'medium\'); ?>">
                <div class="meetup-card-text"><h3><?php the_title(); ?></h3>
                <div class="meetup-location"><h4><?php the_field(\'city\'); ?><br><?php the_field(\'country\'); ?></h4></div></div>
            </div></a>



            <?php endwhile; 
endif; ?>

            </div>
然后调用php文件中的文件search.php 文件

实例search.php 文件

<?php get_header(); ?>
<?php
if (is_post_type_archive(\'meetup_groups\') || is_tax(\'meetup_groups-category\') || is_tax(\'meetup_groups-tags\')){
get_template_part(\'meetup-groups.php\');

} else {

// Add Default WordPress Loop 

}
?>
<?php get_foooter(); ?>
此代码取决于您如何进行自定义分类

if (is_post_type_archive(\'meetup_groups\') || is_tax(\'meetup_groups-category\') || is_tax(\'meetup_groups-tags\')){

相关推荐

Loop stopped working

我有一个巨大的问题,我打破了我的had,试图找到正确的解决方案。我有以下循环代码。此循环位于我的页面产品中。php文件:<?php $terms = get_the_terms( get_the_ID(), \'colour\' ); if ( $terms && ! is_wp_error( $terms ) ) : ?> <section class=\"colour__chart\"> <