我正在努力用一个变量来代替短代码中的硬编码值。
我正在使用以下短代码(作者Ahmed Fouad --感谢Ahmed)在this link 统计类别中的#个帖子。
function category_post_count( $atts ) {
$atts = shortcode_atts( array(
\'category\' => null
), $atts );
$term = get_term_by( \'slug\', $atts[\'category\'], \'category\');
return ( isset( $term->count ) ) ? $term->count : 0;
}
add_shortcode( \'category_post_count\', \'category_post_count\' );
它工作得很好,我得到了正确的计数,前提是我硬编码了类别的名称,例如下面的“计算机”:
<?php echo do_shortcode(\'[category_post_count category="computers"]\'); ?>
我希望短代码自动插入类别的名称。因此,我使用以下内容来获取该类别的slug(来自
Rachel Baker 在
this link -- 谢谢,瑞秋):
$category = get_the_category();
$category_parent_id = $category[0]->category_parent;
if ( $category_parent_id != 0 ) {
$category_parent = get_term( $category_parent_id, \'category\' );
$css_slug = $category_parent->slug;
} else {
$css_slug = $category[0]->slug;
}
这也非常有效,并获得了正确的类别名称(“计算机”)。但当我将$css\\u slug变量插入到shortcode中时,像这样,我得到的是零计数:
<?php echo do_shortcode(\'[category_post_count category=$css_slug]\'); ?>
我的作业有什么不对的地方?提前谢谢。