当浏览管理中的任何页面时,会出现PHP通知,但只针对子主题,使用WP Codex中的代码

时间:2012-04-15 作者:Andrew

我的php\\u错误。登录我的控制台(在OSX上本地)报告3个PHP通知。PHP通知仅在浏览使用子主题的站点(运行多站点)后端的每个管理页面时出现。子主题使用父主题的侧栏。下面的代码放在其中的php。

对于使用实际父主题的站点,不会显示PHP通知。还有,如果我再做一个侧边栏。php中的子主题,则通知仍然存在。有趣的是,这些通知在本地浏览网站时不会出现,一切正常。它们仅在浏览管理员时出现。侧边栏中的代码与this page 在WP Codex上。

确切代码为:

<?php
 if($post->post_parent) {
 $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
 $titlenamer = get_the_title($post->post_parent);
}

else {
 $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
 $titlenamer = get_the_title($post->ID);
}

if ($children) { ?>

<h2> <?php echo $titlenamer; ?> </h2>
<ul>
  <?php echo $children; ?>
</ul>

<?php } ?>
PHP通知包括:

PHP Notice:  Trying to get property of non-object in sidebar.php on line 10
PHP Notice:  Trying to get property of non-object in sidebar.php on line 16
PHP Notice:  Trying to get property of non-object in sidebar.php on line 17
上述代码中有疑问的行为:

if($post->post_parent) { // line 10
$children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0"); // line 16
$titlenamer = get_the_title($post->ID); // line 17
你知道为什么这些通知会出现在管理页面上,并且只针对子主题吗?我应该无视他们吗?

1 个回复
最合适的回答,由SO网友:kaiser 整理而成

这很简单:

你想得到parent 来自的属性$post 对象,但这是NULL 或者干脆不连接。在这两种情况下,你都是

Trying to get property of non-object
$post 对象

简单检查if ( isset( $post->parent ) ) { /* do stuff */ }.

结束

相关推荐

Network Admin“您没有足够的权限访问此页面。”

我用我的管理员帐户登录WP Admin时遇到问题。我已经重置了密码,现在可以登录到WP Admin,但无法联系到网络管理员(/WP Admin/Network),而是收到“您没有足够的权限访问此页面”我需要做什么才能恢复帐户在密码重置之前拥有的权限?