趁着周末,将网站的php版本升级到了8.1,但是由于wordpress插件都比较陈旧,没有及时更新。所以出现了不少的错误。通过查阅网络资料,结合实际情况,列出遇到的如下三种情况。1、Fatal error: Uncaught Error: Call to undefined function create_function()由于在wordpress中,一些插件、主题使用了create_function()函数。这个函数在 PHP 7.2 版本中就已经被废弃并且在 PHP 8.0 中被移除。你可以使用匿名函数来代替 create_function()。例如,如果你原来的代码是这样的:$myFunction = create_function('$arg1, $arg2', 'return $arg1 + $arg2;'); $result = $myFunction(1, 2); 可以将其修改为:$myFunction = function ($arg1, $arg2) { return $arg1 + $arg2; }; $result = $myFunction(1, 2
近期把服务器的php版本从7.4升级到了8.1,网站响应速度终于快了那么一丢丢(可能是心理作用吧)。但因为php8的语法要求更加严格,所以升级过程中,在多个站点里,发现了N多报错。1、Warning: Undefined array key "xxxxxxx" in ....这个错误是我在升级过程中遇到的最多的错误之一。如果你的代码中使用了未定义的数组键值,那么会抛出 Undefined array key 错误。这是因为在 PHP 8 中,增加了对未定义的数组键值的严格检查,所以如果访问一个未定义的数组键值,PHP 会抛出一个警告或致命错误。这个错误通常会在使用数组时出现,例如:$array = []; echo $array['key']; //这里的键'key'就是一个未被定义的key出现这个错误的解决方法是在访问数组元素之前检查它是否已经定义。可以使用 isset() 函数或 Null 合并运算符(??)来避免该错误。例如,将下面的代码:if ($dami_meta['std'] != '') { echo '<img src="'.$da
前几天写过一篇文章《chevereto图床从Chevereto-Free升级到v4.0版本》,但升级后发现4.0免费版本的限制实在是太多了,就连logo都没办法自定义。要么降级,要么就找开心版作为替代。但是在保留原来数据的前提下,安装完开心版v4.0.7之后,陆续发现了多处报错。包括: undefined array key "jpeg"(原因是:我之前上传过jpeg图片,但是开心版4.0.7的代码似乎并不支持jpeg格式) 列表页面显示不出图片(发现前端报错:cannot read properties of undefined (reading 'length') site:chevereto.com) 提示401权限错误(出现了账户无法登录、登录后不能重建统计信息的现象) 这些问题让我一度想放弃,甚至想到直接弃掉chevereto换用其他图床程序。几天之后忽然产生了一个想法,既然用老数据不能直接升级,为啥不新安装一下呢。如果没问题的话,再把老数据迁移过来不就ok了!于是,新建文件夹、二级域名、数据库,设置伪静态,按照正常流程安装4.0.7开心版之后,总算迎来了好消息,
以前网站安装的图床是Chevereto-Free版本,后来开发团队变动停更,就一直用着Chevereto-Free没有升级。前段时间收到v4的邮件,才发现原来chevereto又开始继续更新了。chevereto v4.0也分为免费版和专业版两个版本,因为之前用的是免费版,所以也按照官网的提示,尝试从Chevereto-Free升级到v4.0版本。第一步:备份网站文件及数据库!胆大的请忽略第二步:从Chevereto-Free升级到v3.20版要想顺利升级,需要先从Chevereto-Free(v3.16版)升级到v3.20版本(v3的最后一个版本),再从v3.20升级到v4.0版本(话说v3.20的安装包找了好久没找到,最后找了个v3.20开心版的安装包)。将安装包上传到图床根目录,然后解压,打开首页,自动执行升级即可。第三步:从v3.20升级到v4.0版首先检查升级服务器环境,确保mysql数据库版本为5.7或者8,将php版本升级到8.0以上,安装php扩展(通过探针检测一下,确保以下扩展已安装。如果有宝塔面板,可以通过软件商店直接安装) curl exif file
将个人博客从lofter转移到wordpress之后,个人主页的最新博客的源也需要随之更换。从网上搜索相关代码,多数是从rss调取数据源,但是给出的代码都不能筛选带图片的文章。因为主页上的文章必须要带图片,因此就需要在调取数据时,将不带图的文章排除。除此之外,还有以下几点需求也要满足。获取标题、摘要、链接、第一张图片、时间等信息;展示最新发表的带图片的前3篇文章;图片使用文章中第一张图片;rss源中形如<content:encoded>的带冒号的标签,若直接在函数中引用会产生 syntax error 语法错误,需要使用children()方法获取子元素信息;需将rss源的标准时间格式转换为php的时间格式;rss源的时间为标准时间,需转换为+8区的北京时间。经过不断摸索,终于将满足需求的php代码完成。代码如下:<!--搏浪号imsail.com站外获取wp最新带图文章代码--> <?php function blog_list() { $url = 'https://t.imsail.com/feed'; //请将网址修改为你的rss源 $xml = s
当前的wp主题选用的是苏醒的Grace主题,非常喜欢这个主题的简洁,但是功能很强大。如果是长期使用,建议去官网购买正版。网上的版本标注的几乎都是8.2,但是安装之后发现都是8.0版,只是修改了版本号,骨子里还是8.0的版本。Grace 8.0版本在使用过程中发现有个bug,就是在列表页中,多图(三图)模式的缩略图无法正常显示。后来通过搜索,发现是 functions_suxingme.php 文件的问题。原来的代码中使用的是get_post_meta()函数,无法正常获取图片。我的需求是要获取文章中的前三张图片(不考虑特色图片),并展现在列表页。原作者在定义 post_thumbnail_src() 函数时,仅获取了第一张图片的地址,所以我参考这个函数,重新定义了一个新的 post_thumbnails_src() 函数(比原函数多写了一个s,表明是多图)。下面把代码的调整方法贴出:首先找到Grace主题下的 functions_suxingme.php 文件并打开(请注意:修改前请确认您的主题版本为8.0,或者假的8.2版,其他版本有效性无法保证。修改前请务必做好备份)。在代码中新增
肥牛
半路出家的产品圈怪蜀黍