未定义索引的多个实例

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 值。