未定义索引的多个实例
Multiple instances of undefined index
我遇到了一个突然冒出来的新问题,或者至少直到现在才被发现。 Wordpress 或 PHP 升级已经发生,所以我假设这是一个兼容性问题,因为它曾经可以工作。
调试时列出的错误:
Notice: Undefined index: post in functions.php on line 163
Notice: Undefined index: post_ID in functions.php on line 163
Notice: Undefined index: post_type in functions.php on line 164
Notice: Undefined index: page in single-location.php on line 9
这是我的 functions.php 文件中引用的行。
$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ;
$post_type = $_GET['post_type'] ? $_GET['post_type'] :get_post_type($post_id);
这是我的单个 location.php 文件中引用的行:
// single location template
$this_page = $_GET['page'];
我有一个网站,该网站使用了多个餐厅位置,并且该网站有不同的位置和每个位置的不同数据。
我曾尝试使用其他帖子和解决方案修改代码,但UI我多次尝试都没有成功。
非常感谢任何帮助或指导。
鉴于您尝试过的语法,您可能正在寻找:
$post_id = $_GET['post']??$_POST['post']??123; // 123 == default
$post_type = $_GET['post_type']??get_post_type($post_id);
此语法具有链式 NULL coalescing operator。如果 $_GET['post']
不是 NULL
,第一行将分配 $post_id
。如果是,它将检查 $_POST['post']
的 NULL
值。如果不是,$post_id
将采用 $_POST['post']
的值。最后,如果两者均未设置,则 $post_id
变为 123
.
同样适用于 $post_type
,首先检查 $_GET
,然后 'defaults' 到 get_post_type()
的 return 值。
我遇到了一个突然冒出来的新问题,或者至少直到现在才被发现。 Wordpress 或 PHP 升级已经发生,所以我假设这是一个兼容性问题,因为它曾经可以工作。
调试时列出的错误:
Notice: Undefined index: post in functions.php on line 163
Notice: Undefined index: post_ID in functions.php on line 163
Notice: Undefined index: post_type in functions.php on line 164
Notice: Undefined index: page in single-location.php on line 9
这是我的 functions.php 文件中引用的行。
$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ;
$post_type = $_GET['post_type'] ? $_GET['post_type'] :get_post_type($post_id);
这是我的单个 location.php 文件中引用的行:
// single location template
$this_page = $_GET['page'];
我有一个网站,该网站使用了多个餐厅位置,并且该网站有不同的位置和每个位置的不同数据。
我曾尝试使用其他帖子和解决方案修改代码,但UI我多次尝试都没有成功。
非常感谢任何帮助或指导。
鉴于您尝试过的语法,您可能正在寻找:
$post_id = $_GET['post']??$_POST['post']??123; // 123 == default
$post_type = $_GET['post_type']??get_post_type($post_id);
此语法具有链式 NULL coalescing operator。如果 $_GET['post']
不是 NULL
,第一行将分配 $post_id
。如果是,它将检查 $_POST['post']
的 NULL
值。如果不是,$post_id
将采用 $_POST['post']
的值。最后,如果两者均未设置,则 $post_id
变为 123
.
同样适用于 $post_type
,首先检查 $_GET
,然后 'defaults' 到 get_post_type()
的 return 值。