Wordpress通过woocommerce区分实际页面和产品

时间:2016-10-26 13:37:13

标签: php wordpress search woocommerce

我在搜索结果中分离产品和网页时遇到了一些麻烦。

这是我到目前为止所拥有的

<?php if ( have_posts() ) : ?>
    <?php if ( $post->post_type == 'product' ) : ?>
        <div class="woocommerce">
            <h2>Product results</h2>
            <ul class="products cols-4">
                <?php woocommerce_product_loop_start(); ?>
                    <?php woocommerce_product_subcategories(); ?>
                        <?php while ( have_posts() ) : the_post(); ?>
                            <?php wc_get_template_part( 'content', 'product' ); ?>
                        <?php endwhile; ?>
                <?php woocommerce_product_loop_end(); ?>
            </ul>
        </div>
    <?php endif; ?>
    <?php if ( $post->post_type == 'page' ) : ?>
        <h2>Page results</h2>
        <?php while ( have_posts() ) : the_post(); ?>
                <?php x_get_view( $stack, 'content', get_post_format() ); ?>
        <?php endwhile; ?>
    <?php endif; ?>
<?php else : ?>
    <?php x_get_view( 'global', '_content-none' ); ?>
<?php endif; ?>

我已经达到了这样的程度,即我将产品结果显示出我想要的方式(因此它们都显示在默认的woocommerce布局中)。但我似乎无法从“页面”结果中排除产品。即所有产品都会显示在页面结果上。

示例:

产品结果

产品1 - 产品2 - 产品3 - 产品4

页面结果

第1页(产品1,已在上面显示)

第2页(产品2,已在上面显示)

第3页(产品1,已在上面显示)

第4页(产品2,已在上面显示)

我希望

if ( $post->post_type == 'page' )

只返回实际页面(不是产品)。但没有运气。

所以我的问题是如标题所述,我如何区分搜索结果中的wordpress中的实际页面和woocommerce产品?

1 个答案:

答案 0 :(得分:0)

在您的网页之前,您需要具有类似内容的东西,同时还有has_posts

<?php
global $wp_query;
$args = array_merge( $wp_query->query_vars, array( 'post_type' => 'page' ) );
query_posts( $args );
while ( have_posts() ) : the_post(); ?>