为了账号安全,请及时绑定邮箱和手机立即绑定

从 Woocommerce 产品页面中删除单个页面的链接

从 Woocommerce 产品页面中删除单个页面的链接

PHP
慕哥6287543 2021-07-13 16:00:35
我一直在尝试删除指向 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 中的活动主题设置为我的孩子主题。这最终成功了。
查看完整描述

2 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

将以下代码放入functions.php主题文件中。


// Remove links to the product details pages from the product listing page of a WooCommerce store

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 );



查看完整回答
反对 回复 2021-07-16
?
慕慕森

TA贡献1856条经验 获得超17个赞

试试这个:


function remove_direct_link_to_product_page() {

 if ( is_product() && is_product_category(array('category-slug') ) ) { 

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 );

 }

 }


查看完整回答
反对 回复 2021-07-16
  • 2 回答
  • 0 关注
  • 184 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号