J'ai remarqué que certains plugins tels que Contact-form-7 , Nextgen-gallery , peut-être d'autres, ont une anti-fonctionnalité intéressante de ne pas enregistrer leurs shortcodes quand is_admin()
c'est vrai.
Le problème est que, si vous voulez générer du contenu dynamique (qui peut avoir un shortcode) à partir d'ajax et utiliser la manière wp "correcte" de le faire, admin-ajax.php, il est impossible de ne pas avoir WP_ADMIN vrai. Voir les premières lignes de admin-ajax.php:
define( 'DOING_AJAX', true );
if ( ! defined( 'WP_ADMIN' ) ) {
define( 'WP_ADMIN', true );
}
Maintenant, il semble qu'il y ait des extensions PHP qui vous permettront de dé-définir une constante définie (hacky), ou il pourrait y avoir un moyen de jouer avec le système WP_Screen non documenté et $GLOBALS['current_screen']
de faire en sorte que la is_admin()
fonction retourne faux ?? La solution de contournement la plus utilisable semble être la publication sur la page ou la racine du site.
Est-il courant que les plugins enregistrent leurs shortcodes quand is_admin()
c'est faux? Si c'est le cas, je n'ai trouvé aucune documentation ou raison autre que celle-ci, il peut s'agir d'une optimisation prématurée.
is_admin
est en train de faire_it_wrong il y a de bien meilleures façons dans WP de vérifier les requêtes ajax. Enfin, si le plugin met en file d'attente js / css, s'il le fait bien (en utilisant l''wp_enqueue_scripts'
action), cela n'affectera pas les pages d'administration car ce hook n'est pas déclenché dans les pages d'administration.