我使用一个名为Booster的插件来进行woocommerce。我用它来构建我自己的产品Feed。有一个短代码,以这种格式返回产品类别的整个分支(字符串):
"水果,苹果,青苹果"
不幸的是我需要它以这种格式返回这些类别:
"水果|苹果|绿苹果"
我在插件文件中找到了这个短代码的函数:
function wcj_product_categories( $atts ) {
$return = ( WCJ_IS_WC_VERSION_BELOW_3 ) ? $this->the_product->get_categories() : wc_get_product_category_list( $atts['product_id'] );
return ( false === $return ) ? '' : $return;
}
" wc_get_product_category_list"短代码代码中的函数如下所示:
function wc_get_product_category_list( $product_id, $sep = ', ', $before = '', $after = '' ) {
return get_the_term_list( $product_id, 'product_cat', $before, $sep, $after );
}
我可以替换","为" | "直接在这个woocommerce功能,但我担心它会导致其他插件或woocommerce功能出现问题。所以我需要的是基本上编辑插件函数,以便通过" wc_get_product_category_list"获取类别列表(字符串)。然后将此字符串插入变量并更改"," for" |"但我不知道如何在php中做到这一点。
抱歉我的英语很差,希望你明白这一点。 谢谢你的帮助。
//编辑:可以这样做吗?
function wcj_product_categories( $atts ) {
$product_list = wc_get_product_category_list( $atts['product_id'] );
$new_string = str_replace(","," |",$product_list);
$return = ( WCJ_IS_WC_VERSION_BELOW_3 ) ? $this->the_product->get_categories() : $new_string;
return ( false === $return ) ? '' : $return;
}
答案 0 :(得分:0)
编辑插件文件不是一个好主意,因为您的更改将在更新期间丢失。相反,在functions.php中创建自己的短代码:
remove_shortcode( 'wcj_product_categories');
add_shortcode( 'wcj_product_categories', 'my_wcj_product_categories' );
function my_wcj_product_categories( $atts ) {
$output = wcj_product_categories( $atts );
$output = str_replace( ",", " |", $output);
return $output;
}