我在搜索结果中分离产品和网页时遇到了一些麻烦。
这是我到目前为止所拥有的
<?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产品?
答案 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(); ?>