升级到 PHP 8.0 后无法访问 string 类型的偏移量

问题描述 投票:0回答:1

我不断收到以下错误:

PHP Fatal error:  Uncaught TypeError: Cannot access offset of type string on string in /nas/content/live/wuctldev/wp-content/themes/washu-ctl/template-parts/header/header-primary-menu.php:57 Stack trace: #0 /nas/content/live/wuctldev/wp-includes/template.php(787): require() #1 /nas/content/live/wuctldev/wp-includes/template.php(720): load_template('/nas/content/li...', false, Array) #2 /nas/content/live/wuctldev/wp-includes/general-template.php(206): locate_template(Array, true, false, Array) #3 /nas/content/live/wuctldev/wp-content/themes/washu-ctl/template-parts/header/header-masthead.php(51): get_template_part('template-parts/...', 'primary-menu') #4 /nas/content/live/wuctldev/wp-includes/template.php(787): require('/nas/content/li...') #5 /nas/content/live/wuctldev/wp-includes/template.php(720): load_template('/nas/content/li...', false, Array) #6 /nas/content/live/wuctldev/wp-includes/general-template.php(206): locate_template(Array, true, false, Array) #7 /nas/content/live/wuctldev/wp-content/themes/washu-ctl/header.php(58): get_template_part('template-parts/...', 'masthead') #8 /nas/content/live/wuctldev/wp-includes/template.php(785): require_once('/nas/content/li...') #9 /nas/content/live/wuctldev/wp-includes/template.php(720): load_template('/nas/content/li...', true, Array) #10 /nas/content/live/wuctldev/wp-includes/general-template.php(48): locate_template(Array, true, true, Array) #11 /nas/content/live/wuctldev/wp-content/themes/washu-ctl/page-home.php(13): get_header() #12 /nas/content/live/wuctldev/wp-includes/template-loader.php(106): include('/nas/content/li...') #13 /nas/content/live/wuctldev/wp-blog-header.php(19): require_once('/nas/content/li...') #14 /nas/content/live/wuctldev/index.php(17): require('/nas/content/li...') #15 {main} thrown in /nas/content/live/wuctldev/wp-content/themes/washu-ctl/template-parts/header/header-primary-menu.php on line 57

在这一行:

<a class="menu-item__second-level" href="<?php echo $second_level_link['url']; ?>"><?php echo $second_level_link['title']; ?></a> 

当我将我们网站上的 PHP 从 7.4 升级到 8.0 后,这种情况就开始发生了

我做了相当多的研究,但不明白为什么。我已经卸载了网站上的所有插件,但似乎没有任何效果。

php html wordpress advanced-custom-fields
1个回答
0
投票

我没有足够的声誉来发表评论,否则这将是评论而不是答案。

当您临时修改上面代码之前的代码以包含类似以下内容时,会发生什么?

<?php echo gettype($second_level_link); ?>

理想情况下,如果您可以在 PHP 7.4 上运行的应用程序副本中执行此操作,然后在 8.0 上运行的应用程序副本上重复此操作,您应该会看到差异。

(我假设一个是数组,一个是字符串。如果您获得其中之一的对象,您可以使用 get_class() 和 var_export() 等方法进一步探索。)

然后您需要弄清楚数组和字符串中的内容,然后您可以决定要做什么。它可能会涉及到对您正在使用的任何模板的更改(我认为它被称为 washu-ctl 之类的东西,尽管是以人类友好的形式)。 祝你好运!

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.