Wordpress 区分来自 woocommerce 的实际页面和产品

Posted

技术标签:

【中文标题】Wordpress 区分来自 woocommerce 的实际页面和产品【英文标题】:Wordpress distinguish between actual pages and products from woocommerce 【发布时间】:2017-03-08 21:49:53 【问题描述】:

我在搜索结果中区分产品和页面时遇到了一些问题。

这是我目前所拥有的

<?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 布局)。但我似乎无法从“页面”结果中排除产品。 IE。所有产品也会显示在页面结果中。

例子:

产品结果

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

页面结果

第 1 页(产品 1,如上所示)

第 2 页(产品 2,如上所示)

第 3 页(产品 1,如上所示)

第 4 页(产品 2,如上所示)

我希望如此

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

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

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

【问题讨论】:

【参考方案1】:

在你的页面之前需要这样的东西,而 have_posts

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

【讨论】:

谢谢!做到了。只是出于好奇,这如何使 while 有帖子循环只带出实际页面(并从 woocommerce 中排除产品)? 太棒了。 while have_posts 循环通过主循环。您需要使用 post_type 参数调整主循环参数,以仅拉出“页面”帖子,而不是其他帖子。这就是我的代码所做的。

以上是关于Wordpress 区分来自 woocommerce 的实际页面和产品的主要内容,如果未能解决你的问题,请参考以下文章

来自 wordpress 的 REST API 调用中的服务不可用

php [wpo woocommerce] optimizacion woocommerce #woocommerce #wordpress

Wordpress:仅适用于 Woocommerce 品牌页面的摘录

Woocommerce / Wordpress 将按钮添加到页面

从哪里开始开发 WordPress / WooCommerce 主题? [关闭]

wordpress中的WooCommerce购物车结帐页面中的国家列表里面怎么修改