如何在外部文件中格式化快捷码的Html

时间:2012-10-19 作者:Francesco

我需要在我的主题中添加一个短代码,我想把HTML代码不是放在创建短代码的函数中,而是放在我的主题目录中的模板文件中。

现在我有了

function wpse450_show_video( $atts ) {
    extract(shortcode_atts(array(
        \'id\'        => 0
    ), $atts ));

    if( is_numeric($id) ) {
        $ngvideo_title = get_the_title($id);
    }
    return \'<div>\'.$ngvideo_title.\'</div>\';
}
add_shortcode( \'ngvideo\', \'wpse450_show_video\' );
我想把<div>\'.$ngvideo_title.\'</div> 在外部文件中填充。

如何做到这一点?

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

function wpse450_show_video( $atts ) {
    extract(shortcode_atts(array(
        \'id\'        => 0
    ), $atts ));

    if( is_numeric($id) ) {
        $ngvideo_title = get_the_title($id);
    }

    ob_start();
    include \'path/to/file/video.php\';

    return ob_get_clean();
}

add_shortcode( \'ngvideo\', \'wpse450_show_video\' );
您可以像在函数中一样在我们的文件中使用$id、$atts。文件中的代码的行为将与函数中的代码一样,只有一个区别,即您必须回显内容,而不是像函数一样返回内容

结束

相关推荐

no content after shortcode

我希望你们能帮我解决我遇到的这个小错误。我正在使用一个快捷码在条目中显示音频播放器。这是我在函数中输入的代码。php:function html5_audio($atts, $content = null) { extract(shortcode_atts(array( \"src\" => \'\', \"preload\"=> \'none\', \"loop\" => \'\' ), $atts)); retu