gpt4 book ai didi

php - 在 foreach 里面返回简码

转载 作者:行者123 更新时间:2023-12-01 22:43:54 24 4
gpt4 key购买 nike

我正在使用下面的 PHP 代码根据应用于我的 WordPress 帖子的自定义分类显示 CSS 类。我的分类法称为 CC,它的三个选项是 x、y 和 z。对于包含所有三个的帖子:

 $cc_terms = get_the_terms($post->ID,'cc');
foreach ($cc_terms as $term) {
echo ' '.$term->slug.'-active';
}

输出:x-active y-active z-active

我正在尝试将其转换为 WordPress 短代码函数(据我所知,echo 不起作用),基本上我需要弄清楚如何捕获 cc_class()作为一个变量(不是数组),以便它给我与上面相同的输出。

function cc_meta($atts, $content = null) {
global $post;
extract(shortcode_atts(array('class' => 'default'), $atts));
function cc_class() {
$cc_terms = get_the_terms($post->ID, 'cc');
foreach($cc_terms as $term) {
return ' '.$term->slug.'-active';
}
}
return '<div class="' . esc_attr($class) . cc_class() . '">...</div>';
}

输出:<div class="default x-active">...</div>

它只取第一个而不是所有三个,这让我想知道如何 returnforeach 工作循环。知道我怎样才能让它工作吗?

期望的输出:<div class="default x-active y-active z-active">...</div>

更新 1:我尝试使用 .=按照建议,我收到一个空白错误:

function cc_meta( $atts, $content = null ) {
global $post;
extract(shortcode_atts(array('class' => 'default'), $atts));

$cc_terms = get_the_terms($post->ID, 'cc');
foreach ($cc_terms as $term) {
$return .= ' '.$term->slug.'-active';
}
return '<div class="' . esc_attr($class) . $return . '">...</div>';
}

更新 2:我删除了 global $post行,它起作用了——太棒了!谢谢大家 =)

function cc_meta($atts, $content = null) {
extract(shortcode_atts(array('class' => 'default'), $atts));
$cc_terms = get_the_terms($post->ID, 'cc');
foreach($cc_terms as $term) {
$return .= ' '.$term->slug.'-active';
}
return '<div class="' . esc_attr($class) . $return . '">...</div>';
}

最佳答案

不要在你的函数中间返回,只在最后使用返回。

代替 return 使用这个:

$return .= 

在关闭之前做一个return $return;

关于php - 在 foreach 里面返回简码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6312259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com