我想在这段php代码的输出中添加一个类
function acf_esg_tax_field_loc( $atts, $content = null ) {
$a = shortcode_atts(array('post_id' => "1"), $atts);
$term = get_field( "field_56cb3d84cf32a", $a['post_id'] );
echo $term->name;
}
add_shortcode( 'acfesgtax_loc', 'acf_esg_tax_field_loc' );
该代码在我的Wordpress函数php中用于生成简码。
应该是这样的
function acf_esg_tax_field_loc( $atts, $content = null ) {
$a = shortcode_atts(array('post_id' => "1"), $atts);
$term = get_field( "field_56cb3d84cf32a", $a['post_id'] );
echo '<div class="OutputClass" >';
echo $term->name;
echo '</div>';
}
add_shortcode( 'acfesgtax_loc', 'acf_esg_tax_field_loc' );
不幸的是,这不起作用。
可以帮忙吗?
答案 0 :(得分:1)
请注意,由简码调用的函数绝不能产生任何形式的输出。简码函数应返回将用于替换简码的文本。直接产生输出会导致意外结果。这类似于过滤器函数的行为方式,因为它们不应在调用中产生预期的副作用,因为您无法控制从何时何地调用它们。
因此,首先将其从echo更改为return。 您可以定义一个变量,将其连接起来,最后返回它。
结果:
function acf_esg_tax_field_loc( $atts, $content = null ) {
$a = shortcode_atts(array('post_id' => "1"), $atts);
$term = get_field( "field_56cb3d84cf32a", $a['post_id'] );
$sR = '<div class="OutputClass" >';
$sR .= $term->name;
$sR .= '</div>';
return $sR;
}
add_shortcode( 'acfesgtax_loc', 'acf_esg_tax_field_loc' );
答案 1 :(得分:0)
如果类始终是相同的,因此可以进行硬编码,那么您就非常亲密。仅输出一个回声,因此将其连接:
echo '<div class="OutputClass" >'.$term->name.'</div>';
如果它是动态的,并且您需要在某个地方获取类名并将其传递,那么情况就完全不一样了。