显示特定类别的所有作者产品

时间:2015-12-15 作者:ureija

我使用此代码获取特定类别的所有产品,但如何仅显示作者特定类别的产品?

<div class="author_products">
    <ul class="author_pubproducts">
        <?php
        $args = array(
            \'post_type\' => \'product\',
            \'posts_per_page\' => 12,
            \'product_cat\' => \'pants\'
        );
        $loop = new WP_Query( $args );
        if ( $loop->have_posts() ) {
            while ( $loop->have_posts() ) : $loop->the_post();
                woocommerce_get_template_part( \'content\', \'product\' );
            endwhile;
        } else {
            echo __( \'No products found\' );
        }
        wp_reset_postdata();
        ?>
    </ul>
<div>

2 个回复
SO网友:s_ha_dum

Pass author data to the query. 应该有那么难。

作者参数显示与特定作者相关的帖子。

作者-使用作者id。作者名称(字符串)-使用“user\\u nicename”,而不是名称

  • 中的author\\u(数组)–使用author id(自Version 3.7).
  • 作者\\u不在中(数组)–使用作者id(自Version 3.7).
  • 当然,我不知道您在哪一页上,也不知道您是如何确定或需要确定“作者”的,所以我不太确定如何猜测代码。

    SO网友:Andrius Vlasovas

    正如@s\\u ha\\u dum所提到的,您只需添加额外的查询参数。

    我假设,您希望在该作者的个人资料页面上显示单作者产品。

    要做到这一点,您需要修改代码,使其看起来像这样(这也修复了HTML,因为在没有产品的情况下,您是在响应列表中没有元素的文本):

    <?php
    
    $authorID = get_the_author_meta(\'ID\');
    
    $args = array(
        \'post_type\' => \'product\',
        \'post_status\' => \'publish\'
        \'posts_per_page\' => 12,
        \'product_cat\' => \'pants\'
        \'author\'    => $authorID
    );
    
    $loop = new WP_Query( $args );
    
    ?>        
    <div class="author_products">
        <?php if ( $loop->have_posts() ) { ?>
            <ul class="author_pubproducts">
            <?php while ( $loop->have_posts() ) : $loop->the_post();
                woocommerce_get_template_part( \'content\', \'product\' );
            endwhile; ?>
            </ul>
            <?php
            } else {
                echo __( \'No products found\', \'mytheme\' );
            }
            wp_reset_postdata();
        ?>
    <div>
    
    同样,如果您在author页面上使用这段代码,这将起作用,否则您需要使用另一种方法检索author ID并将其分配给变量$authord。例如,如果您将以某种方式使用ACF,那么它将是:

    $authorID = get_field(\'author_id_field\');
    
    希望这是有帮助的,并将为您提供一些想法。

    相关推荐