web-dev-qa-db-fra.com

PHP Des avis apparaissent lorsque vous naviguez sur une page de l’administrateur, mais uniquement pour le thème enfant, à l’aide du code WP Manuscrit

Mon php_error.log dans ma console (localement sur OSX) rapporte 3 avis PHP. Les avis PHP apparaissent uniquement lorsque vous parcourez chaque page d'administration dans le back-end pour un site (multisite en cours d'exécution) utilisant un thème enfant. Le thème enfant utilise le fichier sidebar.php du thème parent dans lequel le code ci-dessous est placé.

Les avis PHP n'apparaissent pas pour le site qui utilise le thème parent réel. De plus, si je crée un autre sidebar.php dans le thème de l'enfant, les avis sont toujours présents. Fait intéressant, ces avis n'apparaissent pas lorsque vous naviguez sur le site localement et tout fonctionne comme prévu. Ils n'apparaissent que lorsque vous naviguez dans l'administrateur. Le code dans ma barre latérale est le code exact de cette page sur le codex WP.

Le code exact est:

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

Tous les avis PHP sont:

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

Les lignes en question du code ci-dessus sont:

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

Avez-vous des idées sur la raison pour laquelle ces avis figureraient dans les pages d'administration et uniquement pour le thème de l'enfant? Devrais-je les ignorer?

2
Andrew

C'est assez simple:

Vous essayez d'obtenir la propriété parent à partir de l'objet $post, mais il s'agit de NULL ou tout simplement pas attaché. Dans les deux cas, vous êtes

Trying to get property of non-object

à partir de l'objet $post.

Il suffit de vérifier if ( isset( $post->parent ) ) { /* do stuff */ }.

2
kaiser