【问题标题】:Multiple instances of undefined index未定义索引的多个实例
【发布时间】:2021-03-30 14:04:52
【问题描述】:

我遇到了一个突然出现的新问题,或者至少直到现在才发现。 Wordpress 或 PHP 升级已经发生,所以我假设这是一个兼容性问题,因为它曾经可以工作。

调试时列出的错误:

注意:未定义索引:在第 163 行的 functions.php 中发布

注意:未定义索引:第 163 行 functions.php 中的 post_ID

注意:未定义索引:第 164 行 functions.php 中的 post_type

注意:未定义索引:第 9 行的 single-location.php 中的页面

这是我的functions.php文件中引用的行。

$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ;
$post_type = $_GET['post_type'] ? $_GET['post_type'] :get_post_type($post_id);

这是我的 single-location.php 文件中引用的行:

// single location template

$this_page = $_GET['page'];

我有一个网站,该网站使用多个位置的餐馆,并且该网站具有不同的位置和每个位置的不同数据。

我曾尝试使用其他帖子和解决方案修改代码,但 UI 在我的多次尝试中均不成功。

非常感谢任何帮助或指导。

【问题讨论】:

标签: php wordpress indexing undefined


【解决方案1】:

鉴于您尝试过的语法,您可能正在寻找:

$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,然后“默认”为 get_post_type() 的返回值。

【讨论】:

  • 您的解决方案似乎已经解决了我的错误,除了显示该内容的实际“位置”页面上的错误。我现在唯一遇到的问题是第三个错误,$this_page = $_POST['page'];我为我缺乏知识提前道歉。大约 7 年前有人帮助建立了这个网站,看来我在解决这些问题时遇到了麻烦。感谢您到目前为止的帮助!
  • 我让它工作了。不知道以前在位置页面上没有工作的情况发生了什么,但你对我的帮助比你知道的要多。谢谢 Ro 和上面的其他人的提示。
  • 很高兴知道你破解了它。编码愉快!
猜你喜欢
  • 2015-02-19
  • 1970-01-01
  • 2014-03-12
  • 2018-12-08
  • 2019-07-22
  • 2011-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多