为什么我的 wordpress 短代码不在结束标记之后?
Why is my wordpress shortcode not following closing tag?
这是我的插件:
add_shortcode('twitter', function($atts, $content) {
// print_r($atts); die();
if (!isset($atts['username']) ) $atts['username'] = 'att';
if ( empty($content) ) $content = 'Follow me on Twitter';
// shortcode_atts
$content .= '<div style="font-family: Arial, sans-serf">';
$content .= '<h2 style="color:orange">My Plugin here!</h2>';
$content .= '<a style="color:blue" href="http://twitter.com/' . $atts['username'] .'">' . $content .'</a></div>';
return $content;
});
我只期待 div 和
<div>
<h2>My Plugin here!</h2>
<a href="http://twitter.com/envatowebdev">Please follow me everybody!</a>
</div>
但是我得到了以下信息:
<div>
<h2>My Plugin here!</h2>
<a href="http://twitter.com/envatowebdev">Please follow me everybody!</a>
<div>
<a href="http://twitter.com/envatowebdev">
<h2>My Plugin here!</h2>
</a>
</div>
我认为这是因为 Wordpress 正在读取我的结束“[/twitter]”标签作为新的简码:
[twitter username="envatowebdev"]Please follow me everybody![/twitter]
但是我关注的 this tutorial 的作者并没有发生同样的问题,我处于 HTML 文本编辑模式,所以我不确定为什么会这样.
Link 到 post:http://attapi.com/new-post/
[twitter username="envatowebdev"]Please follow me everybody![/twitter]
试试这个方法:
function testf($atts, $content = "") {
// print_r($atts); die();
if (!isset($atts['username']) ) $atts['username'] = 'att';
if ( empty($content) ) $content = 'Follow me on Twitter';
// shortcode_atts
ob_start();
?>
<div style="font-family: Arial, sans-serf">
<h2 style="color:orange">My Plugin here!</h2>
<a style="color:blue" href="http://twitter.com/<?php echo $atts['username']; ?>"><?php echo $content; ?></a></div>
</div>
<?php
$content = ob_get_contents();
ob_end_clean();
return $content;
}
这是我的插件:
add_shortcode('twitter', function($atts, $content) {
// print_r($atts); die();
if (!isset($atts['username']) ) $atts['username'] = 'att';
if ( empty($content) ) $content = 'Follow me on Twitter';
// shortcode_atts
$content .= '<div style="font-family: Arial, sans-serf">';
$content .= '<h2 style="color:orange">My Plugin here!</h2>';
$content .= '<a style="color:blue" href="http://twitter.com/' . $atts['username'] .'">' . $content .'</a></div>';
return $content;
});
我只期待 div 和
<div>
<h2>My Plugin here!</h2>
<a href="http://twitter.com/envatowebdev">Please follow me everybody!</a>
</div>
但是我得到了以下信息:
<div>
<h2>My Plugin here!</h2>
<a href="http://twitter.com/envatowebdev">Please follow me everybody!</a>
<div>
<a href="http://twitter.com/envatowebdev">
<h2>My Plugin here!</h2>
</a>
</div>
我认为这是因为 Wordpress 正在读取我的结束“[/twitter]”标签作为新的简码:
[twitter username="envatowebdev"]Please follow me everybody![/twitter]
但是我关注的 this tutorial 的作者并没有发生同样的问题,我处于 HTML 文本编辑模式,所以我不确定为什么会这样.
Link 到 post:http://attapi.com/new-post/
[twitter username="envatowebdev"]Please follow me everybody![/twitter]
试试这个方法:
function testf($atts, $content = "") {
// print_r($atts); die();
if (!isset($atts['username']) ) $atts['username'] = 'att';
if ( empty($content) ) $content = 'Follow me on Twitter';
// shortcode_atts
ob_start();
?>
<div style="font-family: Arial, sans-serf">
<h2 style="color:orange">My Plugin here!</h2>
<a style="color:blue" href="http://twitter.com/<?php echo $atts['username']; ?>"><?php echo $content; ?></a></div>
</div>
<?php
$content = ob_get_contents();
ob_end_clean();
return $content;
}