通过functions.php将bbcode [b],[i],[code]等添加到WordPress中

时间:2011-01-25 00:23:10

标签: php wordpress

嘿伙计们,首先我用短码来玩,但他们没有工作。我可能会有一些冲突(试了好几个小时才找到它)但是现在,它不是一个选择。但以下工作允许我的评论者在他们的评论中使用[img]标签(它被替换为html等价物),我想扩展它。

请不要插件!

我想做的是修改以下代码以允许[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');

2 个答案:

答案 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');

再次感谢您的帮助。