Search using WP_Query

时间:2013-12-12 作者:Matthew Haigh

我正在使用以下内容WP_Query 在我的search.php 模板,以便仅搜索“产品”自定义帖子类型。出于某种原因,它会返回带有一些搜索词的其他帖子类型。

你知道我哪里做错了吗?

<?php global $query_string; ?>

<?php $query_args = explode("&", $query_string); ?>

<?php $search_query = array( \'post_type\' => \'products\', \'posts_per_page\' => 12, \'paged\' => $paged, \'orderby\' => \'name\', \'order\' => \'ASC\' ); ?>

<?php foreach($query_args as $key => $string) {

    $query_split = explode("=", $string);

    $search_query[$query_split[0]] = urldecode($query_split[1]);

} ?>

<?php $search = new WP_Query($search_query); ?>

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

<div class="product">
    <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">
        <section>

            <?php if( get_field(\'product_image\') ) { ?>

                <?php $product_image = get_field(\'product_image\'); ?>
                <img src="<?php echo $product_image[\'sizes\'][\'thumbnail\']; ?>" alt="<?php echo $product_image   [\'alt\']; ?>" >

            <?php } else { ?>

                <img src="<?php bloginfo(\'template_url\'); ?>/images/fallback-image.png" alt="Product image coming soon.">

            <?php } ?>

            <h2><?php trimmed_title(\'...\', 22); ?><br /><span><?php the_field(\'reference_number\'); ?></span></h2>

        </section>
    </a>
</div>

<?php endwhile; else: ?>

<p>Sorry, no products matched your search criteria.</p>

<?php endif; ?> 

2 个回复
SO网友:Shazzad

添加此行-

<?php $search_query[\'post_type\'] = \'products\'; ?>
就在队伍前面-

<?php $search = new WP_Query($search_query); ?>

SO网友:Dave Ross

您的CPT是否注册为“产品”或“产品”?通常,类型名称使用单数,然后为单数和;复数名称。尝试更改\'post_type\' => \'products\'\'post_type\' => \'product\'.

结束

相关推荐

custom autocomplete search

我试图实现一个自动完成搜索,但我有一些困难,使其正常工作。当我在搜索中输入一些单词时,自动完成搜索不会过滤结果,并且总是显示我的所有帖子。所以它根本不搜索。。。我还很难理解显示自定义结果的方式,例如tumbnail、标题和每个已查找帖子的类别。这里是我的脚本:require_once ($admin_path . \"search_autocomplete.php\"); function search_ac_init() { wp_enqueue_script( \