Php WooCommerce/WordPress-不显示具有特定标题的产品

Php WooCommerce/WordPress-不显示具有特定标题的产品,php,wordpress,loops,woocommerce,product,Php,Wordpress,Loops,Woocommerce,Product,我有一个产品循环,在我的主页上显示8种产品。它只是一个循环,从产品列表的末尾开始到开始,显示我的所有产品,直到到达第八个产品。当我放置一个条件语句,即我只希望显示具有特定标题的产品时,它只会选择那些,但只会从没有条件语句的产品列表中选择 例如,考虑一下商店里所有产品的清单: [名单开头] “球1” “地球2号” […更多产品…] “Kompozycja 6” “Kompozycja 7” [名单结束] 我的循环从最后一个项目抓取到第一个项目,并将显示的产品数量限制为8。我放了一个条件语句,我只想

我有一个产品循环,在我的主页上显示8种产品。它只是一个循环,从产品列表的末尾开始到开始,显示我的所有产品,直到到达第八个产品。当我放置一个条件语句,即我只希望显示具有特定标题的产品时,它只会选择那些,但只会从没有条件语句的产品列表中选择

例如,考虑一下商店里所有产品的清单:

[名单开头] “球1” “地球2号” […更多产品…] “Kompozycja 6” “Kompozycja 7” [名单结束]

我的循环从最后一个项目抓取到第一个项目,并将显示的产品数量限制为8。我放了一个条件语句,我只想显示“Kompozycja 7”,它成功了。但是,如果我指定的名称不是列表中最后8项之一,那么它将不起作用。例如,我将选择“Globus 1”。它不会显示,因为它不属于列表中的最后8项

这是我的循环:

$args = array(
    'post_type' => 'product',
    'posts_per_page' => 8
    );
$loop = new WP_Query( $args );

if ( $loop->have_posts() ) {
        while ( $loop->have_posts() ) : $loop->the_post();
        if (get_the_title($post->ID) == 'Kompozycja 7' || get_the_title($post->ID) == 'Kompozycja 2') {
                woocommerce_get_template_part( 'content', 'product' );
        }   
        endwhile;
    } else {
        echo __( 'No products found' );
    }

有人能帮我吗?

你的问题是在条件循环之前限制了帖子的数量。 行
$loop=newwp\u查询($args)为循环返回最多8个迭代结果

您可以返回整个结果集,并使用计数器对其进行限制:

$args = array(
    'post_type' => 'product',
    'posts_per_page' => -1 //return all posts
);
$loop = new WP_Query( $args );
//create a counter
$count=0;

if ( $loop->have_posts() ) {
    //loop whilst we have posts and we still require more
    while ( $loop->have_posts() && $count < 8 ) : $loop->the_post();
        if (get_the_title($post->ID) == 'Kompozycja 7' || get_the_title($post->ID) == 'Kompozycja 2') {
            woocommerce_get_template_part( 'content', 'product' );
            //increment count - if it reaches 8 we quit the loop
            $count++;
        }
    endwhile;
} else {
    echo __( 'No products found' );
}
$args=array(
“post_类型”=>“产品”,
“每页帖子”=>-1//返回所有帖子
);
$loop=新的WP_查询($args);
//创建一个计数器
$count=0;
如果($loop->have_posts()){
//循环,而我们有职位,我们仍然需要更多
而($loop->have_posts()&&$count<8):$loop->the_post();
如果(获取标题($post->ID)='Kompozycja 7'| |获取标题($post->ID)='Kompozycja 2'){
woocommerce_get_template_part(‘内容’、‘产品’);
//增量计数-如果它达到8,我们退出循环
$count++;
}
结束时;
}否则{
echo(“未发现任何产品”);
}

虽然如果你有成千上万的产品,这将是缓慢的。可能有一个参数可以传递给WP_Query,以在数据库中执行此检查。

您没有显示足够的代码-您在哪里将结果限制为8?哦,对不起!刚刚做了一次编辑来添加丢失的代码。现在它就在那里了。代码假设在从db中取出的8个产品中有这2个产品。您确定查询返回的结果中有这些产品吗?