我一直在尝试删除指向 Woocommerce 插件单个产品页面的链接。在这个论坛上,很多人提出问题并且已经阅读了其中的大部分。但几乎所有这些问题都是陈旧的。然而,据我所知,我现在必须使用functions.php 和content-page.php 来实现这一点。
因此,在阅读了 i-net 上的所有信息后,我在functions.php(在我的子主题文件夹中)中找到了这段代码
if ( !function_exists('add_remove_hooks')):
function add_remove_hooks() {
remove_action( 'woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10 );
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 );
}
endif;
add_action( 'init', 'add_remove_hooks' );
我已经尝试了所有类型的变体,比如只放在 remove_action 行中,而不是在函数中包装或在 add_action 函数中使用其他动作,但它们似乎都不起作用。但是,语法应该如此。
(部分)content-page.php 看起来像
<li <?php post_class( $classes ); ?>>
<?php do_action( 'woocommerce_before_shop_loop_item' ); ?>
<?php
/**
* woocommerce_before_shop_loop_item_title hook
*
* @hooked woocommerce_show_product_loop_sale_flash - 10
* @hooked woocommerce_template_loop_product_thumbnail - 10
*/
do_action( 'woocommerce_before_shop_loop_item_title' ); ?>
<?php if($product_style == 'classic') {
do_action( 'woocommerce_shop_loop_item_title' );
do_action( 'woocommerce_after_shop_loop_item_title' );
} ?>
<?php do_action( 'woocommerce_after_shop_loop_item' ); ?>
</li>
我不知道如何在 PHP 中进行调试,但我知道 WP 会“使用”这些文件,因为如果我更改其中一个文件中的某些内容,我会在屏幕上看到它。但是,链接仍然存在。remove_action 不起作用。
有没有人对如何实现这一点有其他建议?要寻找什么?
使用 WP 5.2 和 Woocommerce 3.0
更新:
感谢 Alfaraz 我能够解决这个问题。将 remove_actions 放在子主题的 functions.php 中现在也可以使用。我没有意识到我还必须将 WP 中的活动主题设置为我的孩子主题。这最终成功了。
qq_花开花谢_0
慕慕森