请不要插件!
我想做的是修改以下代码以允许[b],[i]和[code](小写和大写条目)吐出html等价物,这样我的评论就可以了在评论时使用标准的bbcodes,非常关注当前函数的工作原理:
function embed_images($content) {
$content = preg_replace('/\[img=?\]*(.*?)(\[\/img)?\]/ei', '"<img src=\"$1\" alt=\"" . basename("$1") . "\" />"', $content);
return $content;
}
add_filter('comment_text', 'embed_images');
我已经尝试过但尝试过无法工作。任何编码帮助都会非常感激。谢谢你们。
编辑:好的,伙伴们,让它运转起来。这看起来不错吗?我的意思是它有效,但代码怎么样......体面?
function embed_bold($content) {
$content = preg_replace('/\[b]*(.*?)(\[\/b)?\]/ei', '"<strong>$1</strong>"', $content);
return $content;
}
add_filter('comment_text', 'embed_bold');
答案 0 :(得分:0)
我曾写过一篇关于使用正则表达式进行bbcodes的博客文章。大多数建议使用专门为BBCodes构建的PHP扩展。这是文章:
http://www.spotlesswebdesign.com/blog.php?id=12
/\[b](.+?)\[\/b]/i
替换为
'<strong>$1</strong>'
答案 1 :(得分:0)
好的dqhendricks,根据您的编码约定,我已将所有bbcodes合并为一个函数。任何严重的编码违规,还是看起来不错?
//add bbcode tags
function embed_bbcode($content) {
$content = preg_replace('/\[img](.+?)\[\/img]/ei', '"<img src=\"$1\" alt=\"" . basename("$1") . "\" />"', $content);
$content = preg_replace('/\[b](.+?)\[\/b]/ei', '"<strong>$1</strong>"', $content);
$content = preg_replace('/\[i](.+?)\[\/i]/ei', '"<em>$1</em>"', $content);
$content = preg_replace('/\[code](.+?)\[\/code]/ei', '"<code>$1</code>"', $content);
$content = preg_replace('/\[quote](.+?)\[\/quote]/ei', '"<blockquote>$1</blockquote>"', $content);
return $content;
}
add_filter('comment_text', 'embed_bbcode');
再次感谢您的帮助。