我使用下面的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