Je commence un site WordPress et je rencontre un problème avec certains de mes messages.
Cette question n'affecte que 2 articles sur 4 et, après enquête, je ne peux pas en trouver la raison.
Ce message d'erreur apparaît juste en dessous de la section des commentaires:
Avis: Offset non défini: 0 dans /home/***/public_html/wp-includes/class-wp-query.php à la ligne 3152
Lorsque je recherche cette ligne, je trouve cette fonction:
J'ai recherché cette fonction dans mon code WordPress et je n'ai trouvé que quelques correspondances:
grep -r rewind_posts *
wp-content/themes/magazine/themify/themify-wp-filters.php: rewind_posts();
wp-includes/class-wp-query.php: $this->rewind_posts();
wp-includes/class-wp-query.php: public function rewind_posts() {
wp-includes/feed-rdf.php:<?php rewind_posts(); while (have_posts()): the_post(); ?>
wp-includes/query.php:function rewind_posts() {
wp-includes/query.php: $wp_query->rewind_posts();
En ce qui concerne ces résultats, il existe deux implémentations différentes de cette fonction rewind_post
dans query.php
et class-wp-query.php
.
Il n'y a que deux endroits où cette fonction est appelée. Je me concentre sur celui lié au thème utilisé, themify-wp-filters.php
, il est appelé à partir de cette fonction: function themify_404_template
Cela ne dit pas grand chose, car je ne consulte pas de page 404.
J'utilise actuellement Super Socializer plugin mais je n'ai pas activé la fonctionnalité de commentaire social.
Des idées?
Vous cherchez dans les fichiers de base de WordPress la cause de la remarque PHP, ce qui est une perte de temps, car 1) je doute que vous ayez trouvé un nouveau bogue dans WordPress, et 2) vous n'en ayez pas. ne veut pas modifier les fichiers principaux de WordPress pour résoudre un problème de thème ou de plug-in, et 3) l'erreur est provoquée par un thème ou un plug-in et non par le noyau de WordPress, mais apparaît dans la notification PHP comme pointant vers les fichiers de base .
Et en plus de tout cela, c'est un PHP avis. Pas une erreur, pas une erreur fatale, mais un avis. Tout ce que cela signifie, c'est "hé, regarde-moi, tu pourrais vouloir me réparer à un moment donné, mais je ne suis pas une erreur." Lire https://stackoverflow.com/questions/4624474/php-difference-between-notice-and-warning
AVIS: C'est un message pour dire ce que vous devriez faire et ce que vous ne devriez pas faire.
AVERTISSEMENT: cela se produit au moment de l'exécution. Mais cela n'interrompt pas l'exécution du code.
ERREUR: Cela se produit également au moment de l'exécution, mais l'exécution du programme n'est pas poursuivie, elle se termine.
Vérifiez donc dans le fichier wp-config.php et désactivez le débogage afin de ne pas voir les notifications https://codex.wordpress.org/Debugging_in_WordPress ou enregistrez le fichier php.ini de votre compte d'hébergement; voir https://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display
Pour rechercher plus efficacement la cause d'une erreur ou d'un avis PHP, utilisez le débogage en tant que lien ci-dessus. Mais la chose la plus simple à faire est de désactiver tous les plugins et de les réactiver jusqu’à ce que vous trouviez celui qui lève l’avis. Ensuite, demandez de l’aide au plugin ou regardez dans leurs forums. Ou, si un plugin n'est pas la cause, passez au thème WordPress par défaut et voyez si l'avis est dans les journaux des erreurs enregistrés par wp_debug.
J'ai récemment fourni des analyses pour la fonction rewind_posts
.
>grep -r rewind_posts *
wp-content/themes/magazine/themify/themify-wp-filters.php: rewind_posts();
wp-includes/class-wp-query.php: $this->rewind_posts();
wp-includes/class-wp-query.php: public function rewind_posts() {
wp-includes/feed-rdf.php:<?php rewind_posts(); while (have_posts()): the_post(); ?>
wp-includes/query.php:function rewind_posts() {
wp-includes/query.php: $wp_query->rewind_posts();
Très probablement, le problème ne réside pas dans le noyau de WordPress, car les ingénieurs supérieurs de WordPress ne permettraient pas que de tels problèmes se produisent.
D'après l'expérience, les développeurs de thèmes peuvent parfois oublier de cloner le code, vous pouvez donc vous attendre au problème suivant:
wp-content/themes/magazine/themify/themify-wp-filters.php:
Utiliser le rewind_posts
sans vérifier certaines conditions avec if()
. Le thème devrait avoir cette vérification en fonction de ce qui va essayer de revenir en arrière.
Je n'ai pas le code, donc je ne peux pas en dire plus. Vous pouvez envoyer ce problème au support de thème.