添加过滤器以替换字符串的一部分


add filter to replace part of a string

添加过滤器以替换echo中部分字符串的正确方法是什么?

函数是这样的:

function woocommerce_template_loop_product_title() {
    echo '<h3>' . get_the_title() . '</h3>';
}

我试图实现这在我的函数。php:

add_filter( 'woocommerce_template_loop_product_title', 'product_title_mod');
function product_title_mod($str) {
    return str_replace ('h3','h2',$str);
}

但这并不影响h3值,过滤这些值的最佳方法是什么?

function应该是return的值,所以你可以直接使用它或echo的值:

add_filter( 'woocommerce_template_loop_product_title', 'product_title_mod');
// option 1
function product_title_mod($str) {
    return str_replace("h3","h2",$str);
}
// option 2
function product_title_mod($str) {
    echo str_replace("h3","h2",$str);
}

不完全确定wordpress过滤器是如何工作的,但我想你不能实现你想要的,因为woocommerce_template_loop_product_title函数echo直接产生