我有以下短代码:
function infobox_shortcode( $atts, $content = null ) {
extract( shortcode_atts( array(
\'src\' => \'\',
\'title\' => \'\',
\'text\' => \'\',
), $atts, \'infobox\' ) );
$return = \'<div class="infobox clearfix"><div class="col-md-1 infobox-image"><img src="\'.$src.\'" alt="\'.$title.\'"/></div><div class="col-md-8 infobox-content"><h2> \' . $title . \'</h2><p>\' . $text . \'</p></div></div>\';
return $return;
}
add_shortcode( \'infobox\', \'infobox_shortcode\' );
当用户简单地使用它时,这很好:
[infobox src="http://www.google.com" title="Google" text="Some description"]
But:
一旦用户尝试在短代码中添加引用链接,它当然会中断:
[infobox src="http://www.google.com" title="Google" text="Some description - see more: <a href="http://www.google.com">More here</a>"]
问题是,我的用户使用WP编辑器添加链接,这会产生双引号。默认情况下,Alsor WordPress似乎删除了属性的单引号,并添加了双引号,这再次打破了我的短代码。
现在我看到了两种解决方案,但都不是很令人满意。
a) 告诉WP在保存帖子orb时不要将a href链接中的单引号转换为双引号),以使短代码使用双引号。
还有什么其他的提示或解决方法吗?
谢谢
迈克