web-dev-qa-db-fra.com

Les images présentées ne peuvent pas être définies

J'ai essayé quelques solutions trouvées en ligne sur ce site et bien d'autres, mais la plupart des problèmes concernent les utilisateurs de thèmes et non les développeurs de thèmes. Il y a un problème avec mon thème que je suis en train de construire; il ne s'agit pas de mettre en vedette Image/Vignette dans les types de pages de modèle, les publications, etc. Je ne peux pas non plus supprimer ceux que j'ai prédéfinis manuellement!

J'ai aussi remarqué que si je cliquais sur Set Featured Image avant la page de publication WordPress before il a le temps de le charger chargé comme une fenêtre à faible bande passante montrant la médiathèque et que autorise moi à sélectionner/définir l'image! Image de la médiathèque à faible bande passante ci-dessous:  enter image description here 

Ce que j'ai essayé:

  • Supprimer des plugins
  • Changer de thème (ce qui m'a permis de définir l'image)
  • Recherche dans les thèmes PHP des erreurs et des documents examinés sur WP guide de développement officiel

Mais une chose que j’ai remarquée, c’est que dans la médiathèque, lorsque je vais définir une image en vedette, il ya cette pièce jointe vierge qui ne montre rien, aucune information. Il ne montre que lors du réglage de l'image sélectionnée, ne s'affiche pas dans la page de la médiathèque. (Voir image ci-dessous)

 enter image description here 

J'ai ajouté du code pouvant être pertinent au problème:

if ( $post_type !== 'post' ) {

            register_post_type( $post_type,
                array(
                    'labels'            => array(
                        'name'          => __( ucfirst( $post_type ) ),
                        'singular_name' => __( $post_type ),
                    ),
                    'supports'          => array( 'title', 'thumbnail', 'editor', 'excerpt', 'author', 'comments', 'revisions', 'custom-fields'),
                    'show_ui'           => true,
                    'show_in_menu'      => true,
                    'show_in_nav_menus' => true,
                    'show_in_admin_bar' => true,
                    'taxonomies'        => array( 'category' ),
                    'public'            => true,
                    'has_archive'       => true,
                    'rewrite'           => array(
                        'slug' => strtolower( $post_type ),
                    ),
                )
            );

L'erreur dans la console indique: load-scripts.php?c=1&load[]=utils,jquery-core,jquery-migrate,plupload,quicktags&ver=4.7.5:5 POST admin-ajax.php 403 (Forbidden)

1
RTarson

Vous avez ajouté votre propre réponse dans la section commentaires:

Il n'y a qu'un seul avertissement/erreur php total:

wp-admin/admin-header.php:9 
- Cannot modify header information 
- headers already sent by 
(output started at 
    /home/content/p3pnexwpnas13_data03/47/3056147/html/wp-includ‌​es/functions.php:413‌​8) 
include('wp-admin/edit-form-advanced.php'), 
require_once('wp-admin/admin-header.php'), 
header…

L'autre moitié des erreurs (ce sont deux problèmes différents que vous rencontrez) peut également être trouvée dans vos commentaires  1)

Je reçois aussi 6x de celles-ci mais je ne sais pas si cela a quelque chose à voir avec le thème.

Notice: wp_enqueue_style was called incorrectly. 
Scripts and styles should not be registered or enqueued until the 
wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. 
Please see Debugging in WordPress for more information. 
(This message was added in version 3.3.0.) 
in /home/content/p3pnexwpnas13_data03/47/3056147/html/wp-includ‌​es/functions.php on line 4138

Le premier problème est un error, qui a été soulevé dans votre appel AJAX. La raison pour laquelle vous ne voyez pas l'erreur directement, c'est que - et c'est ce qui définit AJAX, le A est pour asyncronous - l'erreur ne figurait pas dans votre demande en cours, mais dans une request spawned par votre requête actuelle, qui a été exécutée dans son propre processus en arrière-plan. Signification: vous devrez inspecter le callback AJAX, la fonctionnalité appelée, pour rechercher l'erreur réelle.

Chrome propose un bel ensemble d’options de débogage:

  1. Vous pouvez relire cette demande sans charger à nouveau toute la page, sans répéter le processus (par exemple, ouvrir un modal) et sans amener la demande à un état spécifique. Si un rappel échoue et que vous êtes en mode dev local, modifiez simplement votre gestionnaire de noeud final AJAX, le script de rappel, appuyez sur Replay XHR et vous exécuterez le rappel avec le code modifié. Logique? Oui! Supervisé? Oui souvent.
  2. Vous pouvez ouvrir n'importe quel script exécuté en arrière-plan, lors d'une demande AJAX, dans un onglet séparé. Cela rend souvent les messages d'erreur visibles lors de l'impression à l'écran. Idem ici: solution facile, mais surveillée par la plupart des développeurs.

Le deuxième problème est une condition de concurrence , un problème de timing. Un bon indicateur pour une situation de concurrence critique utilise une connexion slow, ce que vous pouvez par exemple définir et tester dans les outils de développement de Chrome. Lorsque la situation est lente, il est plus facile de remarquer et de regarder lorsqu'un script termine sa tâche plus tôt qu'un autre qui repose sur le résultat. Si le résultat n'est pas disponible, il échouera. Lorsque WordPress vous indique que vous avez mis un script en file d'attente trop tôt, certains scripts livrés avec core et notés comme dépendance ne sont pas encore prêts. Vous remarquerez également que vous avez mis le script en file d'attente avant que l'API Dependency ne soit pas encore prête à accepter pour mettre un nouveau script en file d'attente. Cela signifie que WP ne prendra pas, ne chargera et ne produira pas votre script, ce qui fera que WP échouera à ce stade.

 enter image description here  enter image description here 

1)  Faites not masquer les informations importantes dans les commentaires. Toujours ajoutez-les en tant que modifications à votre question.

2
kaiser