在短码中替换类别弹头

时间:2018-02-05 作者:Andreas3204

我正在努力用一个变量来代替短代码中的硬编码值。

我正在使用以下短代码(作者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 Bakerthis 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]\'); ?>
我的作业有什么不对的地方?提前谢谢。

1 个回复
最合适的回答,由SO网友:rudtek 整理而成

尝试以下操作:

<?php echo do_shortcode(\'[category_post_count category=\'.$css_slug.\']\'); ?>
我不知道你想做什么?如果您没有在实际的内容页中执行此操作,则不需要使用短代码。

您可以在php页面中完成所有操作。如果你需要更多信息,请告诉我。

结束

相关推荐

using do_shortcode

我正在尝试向我的主题文件添加一个短代码,当我这样做时,我在前端得到了以下内容:警告:strpos()要求参数1为字符串,数组在/home2/wafg440adhss/public\\u html/wp includes/shortcode中给出。php在线205警告:preg\\u match\\u all()要求参数2为字符串,数组在/home2/wafg440adhss/public\\u html/wp includes/shortcode中给出。php第213行警告:array\\u inters