你的主要问题是
您的右括号}
因为is\\u product()大小写位于错误的位置:它应该位于elseif
不是在街区的底部。(这就是Tom正确缩进代码的意思:如果您缩进了每个{…},IDE将为您做什么,这是显而易见的。)这个定义函数的代码将在WordPress加载足够的状态以确定是\\u product()还是\\u shop()之前运行:在加载主题时,主查询尚未初始化可以在if-else中封装函数定义,例如,请参阅WordPress的pluggable。php或wc模板函数,这是您在这里重写的,但这不是正确的方法。相反,test is\\u product and is\\u shop in the function:
function woocommerce_template_loop_product_title() {
if ( is_product() ){
echo \'<h2 class="product-title">\' . get_the_title() . \'</h2>\';
} elseif ( is_shop() ) {
echo \'<span class="product-title">\' . get_the_title() . \'</span>\';
}
// do you need an \'else\' case here too?
}
因为此时,此函数称为WordPress,它将为is\\U product和is\\U shop加载足够的页面状态。