导航菜单
登录 注册

在 Typecho 评论的内容中,如果用

<img src="图片地址" />

的语法,将被 Typecho 自带的过滤器删除,所以评论后看不到贴图。

解除贴图限制

我们需要手动打开限制,这个一般推荐在

themeInit

函数里强制设置,这样对用户来说就无需额外操作。

修改

functions.php
function themeInit($archive) {
    $options = Helper::options();
    //允许图片标签
    $options->commentsHTMLTagAllowed .= '<img class="" src="" data-src="" alt="" style=""/>';
}

这样我们就可以在评论区通过

<img src="图片地址" />

的语法来贴图了。

支持使用短代码格式贴图

使用短代码的格式贴图

[img]图片地址[/img]

好处是有别的html过滤器也不怕图片被过滤掉了。

处理评论内用需要用到钩子,往

functions.php

加入以下代码。

回复可见
此处内容已隐藏,回复后(需要填写邮箱)可见

评论框增加一个按钮用于插入图片

修改

Typecho_Plugin::factory('Widget_Abstract_Comments')->contentEx = ['CommensHelper', 'parse'];
class CommensHelper
{
    public static function parse(string $content, $archive, ?string $lastResult) :string 
    {
        if ($lastResult) $content = $lastResult;
        // 判断是不是在文章页
        $isSingle = Typecho_Widget::widget('Widget_Archive')->is('single');
        if ($isSingle) {
            $content = preg_replace_callback('/\[img=?\]*(.*?)(\[\/img)?\]/ism', function ($matches) {
            return sprintf('', Typecho_Common::safeUrl($matches[1]));
            }, $content);
        } else {
            $content = preg_replace('/\[img=?\]*(.*?)(\[\/img)?\]/ism', _t("[图片]"), $content);
        }
        return $content;
    }
}

,在合适位置加入以下代码:

回复可见
此处内容已隐藏,回复后(需要填写邮箱)可见

资源下载

MoeOS:臭不要脸的泽泽自称最美OS风格Typecho主题
上一篇
JJ:高仿掘金,开源主题
下一篇