我想创建一个短代码,但它会创建空代码<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\' );
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"]