趁着周末,将网站的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
将个人博客从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版,其他版本有效性无法保证。修改前请务必做好备份)。在代码中新增
肥牛
半路出家的产品圈怪蜀黍