我使用下面的PHP代码来显示基于应用到我的WordPress博客的自定义分类法的CSS类。我的分类称为CC,它的三个选项是x,y和z。对于一个帖子说有三个:返回里面短信内部foreach
$cc_terms = get_the_terms($post->ID,'cc');
foreach ($cc_terms as $term) {
echo ' '.$term->slug.'-active';
}
输出:X-有效Y主动Z-活跃
我试图将其转换成简码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>
这只是采取的第一项,而不是所有三个,我不知道这使得如何return
作品foreach
循环。任何想法如何让这个工作?
期望的输出:<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>';
}
在一个侧面说明,如果你想要更多的答案,你应该给的答案的问题反馈你已经问过。 [查看常见问题](http://stackoverflow.com/faq)了解这个社区的运作方式。 – stefgosselin 2011-06-10 21:32:53
@stefgosselin我曾尝试过,但它说我没有足够高的声誉来评价答案,但我想我现在就做。 – ryanve 2011-06-10 21:54:28