Уведомления PHP появляются при просмотре любой страницы в admin, но только для дочерней темы, используя код из кодекса WP


Мой php_error.вход в мою консоль (локально в OSX) сообщает о 3 уведомлениях PHP. Уведомления PHP появляются только при просмотре каждой страницы администратора в фоновом режиме для сайта (с несколькими сайтами), который использует дочернюю тему. Дочерняя тема использует родительскую тему sidebar.php в который помещен приведенный ниже код.

Уведомления PHP не отображаются для сайта, который использует фактическую родительскую тему. Кроме того, если я сделаю еще один sidebar.php в дочерней теме, то уведомления по-прежнему подарок. Интересно, что эти уведомления не появляются при локальном просмотре сайта, и все работает так, как ожидалось. Они появляются только при просмотре страниц администратора. Код на моей боковой панели - это точный код с этой страницы в Кодексе WP.

Точный код:

<?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

Любые идеи, почему эти уведомления будут появляться на страницах администратора и только для ребенка тема? Должен ли я просто игнорировать их?

Author: Andrew, 2012-04-15

1 answers

Это довольно просто:

Вы пытаетесь получить свойство parent из объекта $post, но это либо NULL, либо просто не прикреплено. В обоих случаях вы

Trying to get property of non-object

Из объекта $post.

Просто проверьте if ( isset( $post->parent ) ) { /* do stuff */ }.

 2
Author: kaiser, 2012-10-09 15:16:17