Php Woocommerce产品快捷码每页仅显示两种产品

Php Woocommerce产品快捷码每页仅显示两种产品,php,wordpress,woocommerce,e-commerce,Php,Wordpress,Woocommerce,E Commerce,我正在用店面儿童主题建造WooCommerce商店。在我的商店页面(archive product.php)中,我使用以下代码显示产品: <?php $filterArray = explode("/", "http://" . $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI]); if(count($filterArray)>5) { echo

我正在用店面儿童主题建造WooCommerce商店。在我的商店页面(
archive product.php
)中,我使用以下代码显示产品:

<?php
        $filterArray = explode("/", "http://" . $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI]);


        if(count($filterArray)>5) {
            echo do_shortcode('[products category="' . $filterArray[count($filterArray)-2] . '" per_page="30" limit="30" columns="3" paginate="true"]');
        }
        else {
            echo do_shortcode('[products per_page="30" limit="30" columns="3" paginate=true]');
        }
?>

我想我终于找到了问题所在,但即使我删除了sinppet或将值从2更改为30,分类页面仍然只显示两种产品…

您可以使用
woocommerce\u product\u query
更改每页的
帖子。检查下面的代码

add_action( 'woocommerce_product_query', 'change_posts_per_page', 999 );
function change_posts_per_page( $query ) {

    if( is_admin() )
        return;

    $query->set( 'posts_per_page', 30);
    
}

您可以使用
woocommerce\u product\u query
更改每页的
帖子。检查下面的代码

add_action( 'woocommerce_product_query', 'change_posts_per_page', 999 );
function change_posts_per_page( $query ) {

    if( is_admin() )
        return;

    $query->set( 'posts_per_page', 30);
    
}

试着用这个。你们在存档页上,所以更容易得到当前的术语。您不必从url获取它

    $term = get_queried_object();

    if( !empty( $term ) && !is_wp_error( $term ) ) {
        echo do_shortcode('[products category="' . $term->slug . '" per_page="6" limit="30" columns="3" paginate="true"]');
    } else {
        echo do_shortcode('[products per_page="30" limit="30" columns="3" paginate=true]');
    }

您所面临的问题产品显示的内容不超过2个,这可能是因为有什么内容覆盖了每页的帖子。

尝试使用此选项。你们在存档页上,所以更容易得到当前的术语。您不必从url获取它

    $term = get_queried_object();

    if( !empty( $term ) && !is_wp_error( $term ) ) {
        echo do_shortcode('[products category="' . $term->slug . '" per_page="6" limit="30" columns="3" paginate="true"]');
    } else {
        echo do_shortcode('[products per_page="30" limit="30" columns="3" paginate=true]');
    }

您所面临的问题产品显示的内容不超过2个,可能是因为每页都有一些内容覆盖了帖子。

您能否确认有多少产品分配给该类别,因为当我测试您的代码时,它对我正常工作。@GautamGolakiya是的,我有60多个产品,它们被分为30多页,每个产品有两个。你能确认有多少产品被分配到那个类别吗,因为当我测试你的代码时,它对我来说工作正常。@GautamGolakiya是的,我有60多个产品,它们被分为30多页,每个产品有两个。是的,离婚是个问题,但我还是解决不了。请检查我的编辑。你能从设置->后端阅读中检查“博客页面最多显示”吗?我的值为“10”。是的,验证是个问题,但我仍然无法解决。请检查我的编辑。你能从设置->后端阅读中检查“博客页面最多显示”吗?我有值“10”,谢谢你的帮助,但它仍然每页只显示两个产品(当然,我在else语句中更改了每页的post\u值)。请检查我的编辑。仍然不起作用。谢谢你的帮助,但它仍然每页只显示两个产品(当然,我在else语句中更改了post_per_page值)。请检查我的编辑。仍然不起作用