这是创建短码的正确方式吗?

时间:2013-11-04 作者:enam

我想创建一个短代码,但它会创建空代码<p> 输出中的标记。

我使用以下代码来避免这个问题,但是我不确定这是否是正确的方法。我已经读到,如果短代码添加错误,它们会给WordPress的核心功能带来问题,因此请建议以下方法是否正确。

function run_my_shortcode( $content ) {
    global $shortcode_tags;
    $original_shortcode_tags = $shortcode_tags;
    remove_all_shortcodes(); 
    add_shortcode( \'box\', \'my_shortcode\' ); 
    $content = do_shortcode( $content );
    $shortcode_tags = $original_shortcode_tags; 
    return $content;
} 
add_filter( \'the_content\', \'run_my_shortcode\', 7 );

//output the shortcode content
function my_shortcode( $atts, $content = null ) {   
    extract(shortcode_atts(array(
        \'title\' => \'\'
       ), $atts));

    $output = \'\';
    $output .= "<div class=\'box\' >";

    if (!empty($title)){
        $output .= \'<h3>\'.$title.\'</h3>\';
    }

    $output .= \'<p>\'. do_shortcode( $content ).\'</p>\';
    $output .= \'</div>\';

    return $output; 
}
add_shortcode( \'box\', \'my_shortcode\' );

1 个回复
SO网友:Marcos Rodrigues

我认为,法典很好地解释了短代码的产生

http://codex.wordpress.org/Shortcode_API

一个非常基本的短代码

function foobar_func( $atts ){
    return "foo and bar";
}
add_shortcode( \'foobar\', \'foobar_func\' );
要使用它,你只需要[foobar]

上的第一个参数add_shortcode是短代码的名称

function bartag_func( $atts ) {
    extract( shortcode_atts( array(
        \'foo\' => \'something\',
        \'bar\' => \'something else\',
    ), $atts ) );

    return "foo = {$foo}";
}
add_shortcode( \'bartag\', \'bartag_func\' );
要使用它,只需使用[bartag foo="foo-value"]

结束

相关推荐

Strip shortcode from excerpt

我有一个挑战,我发现我不是网络上唯一一个有同样问题的人,然而,目前还没有解决方案。我正在尝试从我的自定义帖子类型摘录中删除短代码。以下是我的示例:http://guidepaperback.com/city/new-century-hotel/在侧边栏中有一个“邻居”小部件,它显示带有摘录的图像。。。一些人正在展示这个问题。有什么建议吗?提前感谢