在升级主题到wordpress6.0之后,php也升级到了8.0,发现一个函数报错:Attempt to read property "ID" on null in /www/wwwroot/wordpress/wp-content/themes/qui_pure2.67/inc/h2h-fun.php on line 201

然后函数如下:

function set_post_views() {
    global $post;
   $post_id = $post->ID ; //就是这个地方报错,ID无法读取到
   ...

wordpress报错:Warning: Attempt to read property “ID” on null in /www/wwwroot/wordpress/wp-content/themes-QUI-Notes

解决办法

网上搜了一堆,发现没用一个能解决问题的,最后想到,我是搜索的时候没用找到文章的时候报错,会不会是因为$post 为空触发的这个异常?php8.0写法严谨了?为空没有ID就能解释的通了。

那就判断是否为空,不为空往下走。如下:

function set_post_views() {
    global $post;
    if ( !empty($post)) {
        $post_id = $post->ID ;
        ...

保存运行一下,真的可以了,看来代码越开发要求越严谨了,之前随意写的很容易报错。记录这个问题,我又是全网第一个解决实际问题的人。哎!这群开发者越来越不地道了,不分享解决办法,还有一群搬运工,啥都搬运,导致解决问题的文章被埋没,难搞啊!