web-dev-qa-db-ja.com

Woocommerce製品リンクを削除する

Woocommerceの商品リストからリンクを削除したいのですが。ユーザーが商品詳細ページを見る必要はありません。代わりにクイックビューを使用します。とにかく、私は捜していました、そして、私が見つけたすべては時代遅れです。これが現在のcontent-product.phpファイルです: https://github.com/woothemes/woocommerce/blob/master/templates/content-product.php そして単に削除するアンカータグはありません。

フックが必要かもしれませんが、どうすればよいかわかりません。私はいくつか試しましたが、リンクはまだそこにありました。例えばこれは私のfunctions.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);

私は正しい軌道に乗っているかどうか私にはわからない。任意の助けは大歓迎です!

3
amandathewebdev

私が行った方法は、content-product.phpのコピーを取り、それをあなたのテーマフォルダのルートに貼り付けることでした。

コメントアウト

do_action( 'woocommerce_before_shop_loop_item_title' );

そして

do_action( 'woocommerce_after_shop_loop_item' );

早くて汚いが、それは私のために働いた。

0
MrFox

これを行うためのより良くより安全な方法は、リンクを開く&閉じるアクションを削除することです。これにより、カートに追加ボタンが消えるなどの副作用を防ぐことができます。

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

このコードを自分のfunctions.phpに追加することができます

5
Ralrom

私はこれを見つけました。

/**
 * @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/ /

0
Gabriel Darezzo