删除WooCommerce产品链接

时间:2016-01-20 作者:amandathewebdev

我想删除Woocommerce产品列表中的链接。我不需要用户查看产品详细信息页面,我们将使用快速查看。不管是谁,我一直在搜索,发现的一切都过时了。这是当前content-product.php 文件:https://github.com/woothemes/woocommerce/blob/master/templates/content-product.php 而且没有可简单移除的锚定标签。

我可能需要一个钩子,但我不知道该怎么办。我尝试了一些,但链接仍然存在。例如,当添加到我的函数时,这不起作用。php:

 add_filter(\'woocommerce_template_loop_product_link_open\',\'mbc_remove_link_on_thumbnail\' );

 function mbc_remove_link_on_thumbnail($html){
      return strip_tags($html,\'<img>\');
 }
我也尝试过这个方法,但效果并不理想,但我觉得很接近:

 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);
我不确定我是否走对了方向。任何帮助都将不胜感激!

5 个回复
最合适的回答,由SO网友:MrFox 整理而成

我这样做的方式是复制内容产品。php并将其粘贴到主题文件夹的根目录中。

注释掉

do_action( \'woocommerce_before_shop_loop_item_title\' );

do_action( \'woocommerce_after_shop_loop_item\' );

又快又脏,但对我有用。

SO网友:ralrom

更好的;更安全的方法是卸下打开的;关闭链接操作。这将防止副作用,如添加到购物车按钮消失。

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 );
可以将此代码添加到函数中。php

SO网友:Gabriel Darezzo

我找到了这个。

/**
 * @snippet       Disable Link to Products @ Loop
 * @how-to        Watch tutorial @ http://businessbloomer.com/?p=19055
 * @sourcecode    http://businessbloomer.com/?p=19916
 * @author        Rodolfo Melogli
 * @testedwith    WooCommerce 2.5.2
 */
// Close </a> tag just after it opens before product item

add_action( \'woocommerce_before_shop_loop_item_title\',\'bbloomer_close_permalink\', 10 );
function bbloomer_close_permalink() {
?>
</a>
<?php
}

// Open <a> tag  just before it closes after product item

add_action( \'woocommerce_after_shop_loop_item_title\',\'bbloomer_open_atag\', 11);
function bbloomer_open_atag() {
?>
<a>
<?php
}

/**
 * Explanation for the hack!
 *
 * Before the loop item, a link opens...
 * After the loop item, a link closes...
 * We\'re basically adding a close and open so that
 * no content gets wrapped into <a>link</a>
 * 
 * Check wc-template-functions.php lines 545-556:
 *
 * function woocommerce_template_loop_product_link_open() {
 *  echo \'<a href="\' . get_the_permalink() . \'">\';
 * }
 *
 * function woocommerce_template_loop_product_link_close() {
 *  echo \'</a>\';
 * }
 *
 */
字体来源:http://businessbloomer.com/woocommerce-disable-link-to-product-loop/

SO网友:D. Pal

最好的做法是在functions.php 文件

remove_action(\'woocommerce_before_shop_loop_item\' , 
\'woocommerce_template_loop_product_link_open\' , 10);
将其放入任何函数文件中。该产品的链接将消失。

SO网友:בן כהן

我刚刚用jQuery删除了它,如下所示:

<script>
jQuery(document).ready(function(){
    jQuery(\'li.product a.woocommerce-loop-product__link\').removeAttr(\'href\');
});
</script>