首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改"woocommerce_template_loop_product_title“标题标签

更改"woocommerce_template_loop_product_title“标题标签
EN

Stack Overflow用户
提问于 2020-07-07 14:48:05
回答 1查看 1.5K关注 0票数 4

我正在尝试将WooCommerce woocommerce-loop-product__titleH2更改为h6,但我遇到了一些麻烦。

我使用了下面的片段来解锁原始函数,并将其替换为h6。不幸的是,这确实添加了h6,但它也保留了原始的h2

有人能指出问题出在哪里吗?

代码语言:javascript
复制
remove_action( 'woocommerce_shop_loop_item_title','woocommerce_template_loop_product_title', 10 );
add_action('woocommerce_shop_loop_item_title', 'soChangeProductsTitle', 10 );
function soChangeProductsTitle() {
    echo '<h6 class="' . esc_attr( apply_filters( 'woocommerce_product_loop_title_classes', 'woocommerce-loop-product__title' ) ) . '">' . get_the_title() . '</h6>';
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-07 15:01:12

首先,我们将对现有的标题应用remove_action。优先级10用于此(在WooCommerce中这是默认的,请参阅附加的代码行)。

/include/wc-template-hooks.php行98 @Version2.1.0复制/粘贴

代码语言:javascript
复制
add_action( 'woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title', 10 );

但是,如果您使用的主题与WooCommerce中的默认行为不同(简而言之,这取决于主题),则优先级号可能有所不同。

然后,我们将根据现有的输出,用我们想要的输出覆盖现有的输出(我们刚刚删除的输出)。现有输出可以在我前面在回答中引用的同一个文件中找到,即在第1165 @Version2.1.0行中找到。

所以你得到了:

代码语言:javascript
复制
/**
 * Show the product title in the product loop. By default this is an H2.
 */
function action_woocommerce_shop_loop_item_title() {
    // Removes a function from a specified action hook.
    remove_action( 'woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title', 10 );
    
    echo '<h6 class="' . esc_attr( apply_filters( 'woocommerce_product_loop_title_classes', 'woocommerce-loop-product__title' ) ) . '">' . get_the_title() . '</h6>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
add_action( 'woocommerce_shop_loop_item_title', 'action_woocommerce_shop_loop_item_title', 9 );

若要仅将此应用于相关产品(单个产品页),请使用

代码语言:javascript
复制
function action_woocommerce_shop_loop_item_title() {
    global $woocommerce_loop;

    // Only for related products
    if ( isset( $woocommerce_loop['name']) && $woocommerce_loop['name'] === 'related' ) {
        // Removes a function from a specified action hook.
        remove_action( 'woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title', 10 );
        
        echo '<h6 class="' . esc_attr( apply_filters( 'woocommerce_product_loop_title_classes', 'woocommerce-loop-product__title' ) ) . '">' . get_the_title() . '</h6>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
    }
}
add_action( 'woocommerce_shop_loop_item_title', 'action_woocommerce_shop_loop_item_title', 9 );
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62777942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档