我正在尝试将WooCommerce woocommerce-loop-product__title从H2更改为h6,但我遇到了一些麻烦。
我使用了下面的片段来解锁原始函数,并将其替换为h6。不幸的是,这确实添加了h6,但它也保留了原始的h2。
有人能指出问题出在哪里吗?
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>';
}发布于 2020-07-07 15:01:12
首先,我们将对现有的标题应用remove_action。优先级10用于此(在WooCommerce中这是默认的,请参阅附加的代码行)。
从/include/wc-template-hooks.php行98 @Version2.1.0复制/粘贴
add_action( 'woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title', 10 );但是,如果您使用的主题与WooCommerce中的默认行为不同(简而言之,这取决于主题),则优先级号可能有所不同。
然后,我们将根据现有的输出,用我们想要的输出覆盖现有的输出(我们刚刚删除的输出)。现有输出可以在我前面在回答中引用的同一个文件中找到,即在第1165 @Version2.1.0行中找到。
所以你得到了:
/**
* 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 );若要仅将此应用于相关产品(单个产品页),请使用或:
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 );https://stackoverflow.com/questions/62777942
复制相似问题