我在2003年学习了php,但并没有真正适应变化。我在2014年为我构建了以下函数。我刚刚更新到php 7.3,并收到了这些通知(尽管一切正常)。请帮助我解决需要更改离子顺序以符合7.3的要求,并且没有这些声明。
功能如下:
add_filter( 'wp_nav_menu_objects', 'church_nav_menu_objects_filter',10,2);
function church_nav_menu_objects_filter( $items, $args ) {
if (( isset($_SESSION["church"])) && (!empty($_SESSION['church']))) {
//print "<pre>items:<br>\n";
//var_dump( $items );
//print "</pre><br>\n";
if ( is_array( $items ) ) {
for( $i=0 ; $i < count($items) ; $i++ ) {
if (( strpos($items[$i]->url,"thetrinitymission.org" )) && ( ! strpos($items[$i]->url,$_SESSION["church"]) ) ) $items[$i]->url=str_replace("thetrinitymission.org",$_SESSION["church"].".thetrinitymission.org",$items[$i]->url);
}
}
}
return( $items );
}
我收到以下错误: 注意:第360行的/thetrinitymission.org/wp-content/themes/twentynineteenkid/functions.php中的未定义偏移量为0
注意:尝试在第360行的/thetrinitymission.org/wp-content/themes/twentynineteenkid/functions.php中获取非对象的属性“ url”
第360行是开始的行:if((strpos($ items [$ i]-> url,
答案 0 :(得分:0)
$items
显然是带有字符串索引的关联数组,但没有数字索引。将循环更改为使用foreach
而不是for
。
foreach ($items as $item) {
if (( strpos($item->url,"thetrinitymission.org" )) && ( ! strpos($item->url,$_SESSION["church"]) ) ) {
$item->url=str_replace("thetrinitymission.org",$_SESSION["church"].".thetrinitymission.org",$item->url);
}
}