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

我一直在尝试删除指向 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 中的活动主题设置为我的孩子主题。这最终成功了。


慕哥6287543
浏览 185回答 2
2回答

qq_花开花谢_0

将以下代码放入functions.php主题文件中。// Remove links to the product details pages from the product listing page of a WooCommerce storeremove_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 );

慕慕森

试试这个:function remove_direct_link_to_product_page() {&nbsp;if ( is_product() && is_product_category(array('category-slug') ) ) {&nbsp;remove_action( ‘woocommerce_before_shop_loop_item’,‘woocommerce_template_loop_product_link_open’, 10 );&nbsp;remove_action( ‘woocommerce_after_shop_loop_item’,‘woocommerce_template_loop_product_link_close’, 5 );&nbsp;}&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP