Zauważyłem, że niektóre wtyczki, takie jak Contact-form-7 , Nextgen-gallery , ewentualnie inne, mają ciekawą funkcję anty-rejestrowania swoich krótkich kodów, gdy is_admin()
jest to prawdą.
Problem polega na tym, że jeśli chcesz wygenerować dynamiczną zawartość (która może mieć krótki kod) z ajax i użyć „poprawnego” sposobu wp, admin-ajax.php, niemożliwe jest, aby WP_ADMIN nie było prawdziwe. Zobacz pierwsze wiersze admin-ajax.php:
define( 'DOING_AJAX', true );
if ( ! defined( 'WP_ADMIN' ) ) {
define( 'WP_ADMIN', true );
}
Teraz wydaje się, że istnieją rozszerzenia PHP, które pozwolą ci cofnąć zdefiniowaną stałą (hacky), lub może istnieć sposób na bałagan z nieudokumentowanym systemem WP_Screen i $GLOBALS['current_screen']
sprawienie, że is_admin()
funkcja zwróci false? Najbardziej użytecznym obejściem wydaje się być publikowanie na stronie lub w katalogu głównym witryny.
Czy wtyczki często rejestrują swoje krótkie kody, gdy is_admin()
są fałszywe? Jeśli tak, to nie mogłem znaleźć żadnej dokumentacji ani innego powodu niż przedwczesna optymalizacja.
is_admin
to źle, istnieją w WP lepsze sposoby sprawdzania żądań ajax. Wreszcie, jeśli wtyczka kolejkuje plik js / css, jeśli zrobi to dobrze (za pomocą'wp_enqueue_scripts'
akcji), nie wpłynie to na strony administracyjne, ponieważ ten zaczep nie jest uruchamiany na stronach administracyjnych.