Wordpress woocommerce:_home()在functions.php中不工作吗

Wordpress woocommerce:_home()在functions.php中不工作吗,wordpress,woocommerce,Wordpress,Woocommerce,我正在尝试在我的主页(home.php)上显示产品,而不是静态的首页,使用woocommerce短代码,并在functions.php中挂钩它 以下是home.php中的短代码: echo do_短代码('[product_category category=“stuff”columns=“3”]) 下面是我在functions.php中的代码: if (is_home()) { remove_action( 'woocommerce_after_shop_loop_item','woocom

我正在尝试在我的主页(home.php)上显示产品,而不是静态的首页,使用woocommerce短代码,并在functions.php中挂钩它

以下是home.php中的短代码:
echo do_短代码('[product_category category=“stuff”columns=“3”])

下面是我在functions.php中的代码:

if (is_home())
{ 
remove_action( 'woocommerce_after_shop_loop_item','woocommerce_template_loop_add_to_cart', 10 );
remove_action( 'woocommerce_after_shop_loop_item_title','woocommerce_template_loop_price', 10 );
}
我已经试过了,wp_reset_query()和wp_reset_postdata(),但没有任何效果

产品会显示出来,但是如果我用if(is_home())包装它,挂钩就不起作用了

谢谢

如果
is\u home()
不起作用,请尝试使用
is\u page\u模板()。目前,home.php显示了您的主页,这是我根据您的问题所做的。所以你可以试试这个

function remove_woocommerce_actions() {
if (is_page_template( 'home.php' ))
{ 
remove_action( 'woocommerce_after_shop_loop_item','woocommerce_template_loop_add_to_cart', 10 );
remove_action( 'woocommerce_after_shop_loop_item_title','woocommerce_template_loop_price', 10 );
}
}
add_action( 'template_redirect', 'remove_woocommerce_actions' ); 

尝试使用函数is\u front\u page()

Thx Pieter,但它根本不起作用。在我的woocommerce短代码之前,我有3个自定义帖子类型的循环,每个循环的末尾都有wp_reset_postdata()。。。这可能是原因吗?@user2160627我更新了我的答案。你使用CPT的事实并不重要。我认为
remove\u操作
会运行到早期,稍后会运行。尝试将其添加到
after\u setup\u主题
hook。@用户2160627使用
模板重定向
hook,在
after\u setup\u主题
中,我会尽快尝试并通知您。如果您将home.php存储在主题(如“templates”)中的文件夹中,Thx
是页面模板()
也将不起作用。您需要将其更新为
is\u page\u template('templates/home.php')