Typecho解决文章太短描述中暴露短代码的问题

编辑

以前还真没有注意这个问题,今天一位朋友测试上一篇文章的相关代码功能时候反馈的问题,这个问题可以说大也可以说不小。如果你的文章只要内容过多超过了网站描述截取的显示就不会出现这个问题,反之太短就会暴露相关自定义的短代码问题(例如短代码回复查看内容,这里就可以看到),如果你也被这个问题烦恼,可以通过下面的方法解决这个问题。

问题截图

QQ截图20240120211609_1e4b8c9efeda6.webp

使用说明

可以在文章中手动避免这个问题出现那就是在短代码之前使用“<!--more-->”摘要分隔线,这样描述截取的时候只会截取前面的。

把下面的代码添加到“functions.php”文章中即可,需要注意的是自行查看一下文件中是否存在下面的方法,存在是需要复制函数体内的代码即可。不晓得是否还有其他方法,反正这个方法够用了就没必要在折腾了。

//自行检查这个方法是否存在,不存在直接复制下面代码即可
function themeInit($archive){
    /*
    * 如果存在“function themeInit”这段代码,只需要从下面的代码起复制
    * 下面这段代码是判断页面类型的,可以根据实际情况修改
    */
    if ($archive->is('single')){
        //注意:这里就是需要过滤短代码的正则表达,请根据实际情况自行修改。
        $archiv = preg_replace('/{bl av="(.+?)"}/sm','',$archive->getDescription());
        //这个方法是typecho提供设置描述的方法
        $archive->setDescription($archiv);
    }
    //复制到这里结束
}

出处

教程转自:https://luolt.cn/archives/2652.html

评论区

  1. zizdog zizdog

    这算是个极其生僻的考点,我想99.99%的人都用不到(你比99.99%的人要折腾)哈哈