您编写代码的方式正在破坏div
标记几行--如果查看生成的源代码,字面上是这样的:
<div class="Container-Caption"
alt="Oh I have been to Ludlow Fair"
rel="http://www.link.com">
blah</div>
我看不出使用带空格或不带空格的标题有什么不同,但如果不是真的错的话,那么这样破坏标签是不标准的(根据一些非常快速的研究,它似乎实际上并没有错)。它看起来确实像是Javascript可能会被扼杀的东西。我建议重写它,以便生成更典型的标记。
function Shortcode_Caption( $atts, $content=null ){
// DEFAULT ARGUMENTS ARRAY
$args=shortcode_atts( array(
\'caption\' => \'Caption\',
\'link\' => \'http://www.link.com\'
), $atts);
// ENCLOSED SHORTCODES
if($content){
$ret = \'<div class="Container-Caption"\';
$ret .= \' alt="\'. $args[\'caption\'] .\'"\';
$ret .= \' rel="\'. $args[\'link\'] .\'">\';
$ret .= $content.\'</div>\';
return $ret;
};
};
add_shortcode( \'mycaption\', \'Shortcode_Caption\' );
echo do_shortcode(\'[mycaption caption="Oh I have been to Ludlow Fair" ]blah[/mycaption]\');
还请注意,您违反了法典中明确规定的规则:
Shortcode names should be all lowercase 使用所有字母,但数字和下划线也可以。小心使用连字符(破折号),最好不要使用它们。
http://codex.wordpress.org/Shortcode_API