如何直接调用短码函数并传递$ATTS 时间:2011-02-23 作者:Evan Yeung 我正在使用Media Library Categories 插件。它没有太多的文档,所以我总结出实现它的方法是使用短代码[mediacategories categories="6"].我想将其直接实现到主题模板中。所以我尝试过:<?php if(function_exists(do_shortcode(\'[mediacategories categories="6"]\'))) { ?> <h1>Inspiration</h1> <?php do_shortcode(\'[mediacategories categories="6"]\'); } 我还试图直接实现该函数,但无法正确传递$atts以供函数使用。 2 个回复 最合适的回答,由SO网友:fuxia 整理而成 do_shortcode() 只是解析字符串。你必须使用echo 或print 打印出来。function_exists() 需要与函数名匹配的字符串。查看插件后,我会尝试以下代码:<?php if ( function_exists( \'mediacategories_func\' ) ) { ?> <h1>Inspiration</h1> <?php print mediacategories_func( array( \'categories\' => 6 ) ); } SO网友:wyrfel 我通常会在我的短代码回调中添加这样的部分:if (is_array($atts)) { extract(shortcode_atts(array( \'primary_att\' => \'primary_default\', ... ), $atts)); } else { $primary_att = $atts; } 这使您能够传递“primary”属性(替换primary_att 使用您调用的主属性)直接插入函数中,而无需将其包装到数组中。。。在你的情况下,它可以是“类别”,你可以这样称呼它mediacategories_func(6); 然后 结束 文章导航