从content-product.php模板

时间:2016-07-11 15:15:49

标签: php wordpress templates woocommerce product

我正在使用Woocommerce WP插件。在我的商店页面上,我想从<a>中删除产品页面的<span class="price">链接。

this文章中,作者建议更改 /your-child-theme/woocommerce/content-product.php WooCommerce模板中的代码,但这不再可能最新的WooCommerce版本2.6+。

我只找到了删除整个链接的方法,而不仅仅是价格链接。

如何仅从价格中移动链接?

这就是我想要的:

<a href="www.link-to-single-product.com">
    <h3>TITLE</h3>
    <img width="300" height="200" src="www.link.com">

</a> <!-- <===== TO HERE -->

    <span class="price">
        <span class="amount">PRICE</span>
    </span>

</a> <!-- Moving this close tag FROM HERE -->

2 个答案:

答案 0 :(得分:2)

Update2 (代码中有2个缺少“ ; ”,这就是500错误。所以你应该重试。

以下是content-product.php模板的摘录(包含解决方案(1)和(2):

/**
 * woocommerce_after_shop_loop_item_title hook.
 *
 * @hooked woocommerce_template_loop_rating - 5
 * <===  <===  <===  <===  <===  <===  <===  <===  <=== (2) To here
 * @hooked woocommerce_template_loop_price - 10  ====> (1) From here
 */
do_action( 'woocommerce_after_shop_loop_item_title' );

/**
 * woocommerce_after_shop_loop_item hook.
 * 
 * @hooked woocommerce_template_loop_product_link_close - 5  ==> (2) From here
 * <===  <===  <===  <===  <===  <===  <===  <===  <===  <=== (1) To here
 * @hooked woocommerce_template_loop_add_to_cart - 10
 */
do_action( 'woocommerce_after_shop_loop_item' );

因此有两种方法可以从<a href="…></a>中取出价格:

  1. 我们将尝试在 'woocommerce_template_loop_price' 挂钩功能之后将 'woocommerce_template_loop_product_link_close' 从一个位置取消挂钩到另一个位置。
  2. 然后您可以尝试将此代码段添加到活动子主题的function.php文件中:

    add_action('init', function(){
       remove_action('woocommerce_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
       add_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_price', 7);
    }
    
    1. 我们将尝试在 'woocommerce_template_loop_product_link_close' 挂钩功能之前将 'woocommerce_template_loop_price' 从一个位置取消挂钩到另一个位置。
    2. 然后您可以尝试将此代码段添加到活动子主题的function.php文件中:

      add_action('init', function(){
         remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 );
         add_action('woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_link_close', 7);
      }
      

      我还没有测试过,但这次它应该没有错误500。

      您也可以尝试add_action('init', function(){ … }以防万一。

      最终工作解决方案(由fjott 选择)

      remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
      add_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_price', 7);
      

答案 1 :(得分:0)

你可以禁用Link to Products @ Loop只添加2行代码,我已将其测试到我的客户端商店及其工作。你需要将2个链接代码放在你的孩子 - 他们的函数.php。

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