Langsam wp_enqueue_media ()

Ich habe ein WordPress-Plugin für meine Website entwickelt, das den WP Media-Uploader verwendet, um Dateien zu speichern … Dazu enthält mein Plugin den folgenden Code:

function enqueue_scripts() { wp_enqueue_script('jquery'); wp_enqueue_media(); // etc... } add_action('admin_enqueue_scripts', 'enqueue_scripts'); 

Ich bemerkte, dass der Adminbereich sehr langsam wurde, also habe ich einige Abfrageprotokolle ausgeführt und es scheint, dass die Abfrage von wp_enqueue_media () ausgetriggers wurde;

 SELECT ID FROM wp_posts WHERE post_type = 'attachment' AND post_mime_type LIKE 'audio%' LIMIT 1 

Nach einer schnellen Google-Suche kann ich feststellen, dass es sich um ein bekanntes Problem auf großen Seiten handelt, das anscheinend viele frühere Versionen repariert hat …. offensichtlich nicht!

Ich bin mir nicht sicher, wie es weitergehen soll. Ich brauche diese functionalität in meinem Plugin. Ich bin ein wenig verwirrt, warum diese function aufgerufen werden muss, wenn sie allgemein im gesamten Admin-Bereich verfügbar zu sein scheint. Noch seltsamer, wenn ich Sachen von meiner enqueue_scripts () function lade, werden sie global zur Verfügung gestellt, was ich annehme ist was mit wp_enqueue_media () passiert, da es den gesamten Administrationsbereich verlangsamt und nicht nur das Plugin.

Ich vermutete, dass es Ressourcen nur laden würde, wenn es sie brauchte.

Gibt es einen Weg dahin? oder gibt es eine Möglichkeit, enqueue_scripts () nur auszulösen, wenn ich das Plugin verwende?

Ich verstehe nur nicht, warum ich diese vom Plugin laden muss, aber dann wird es global für alle anderen Plugins gemacht.

Solutions Collecting From Web of "Langsam wp_enqueue_media ()"

Um Admin-Skripte nur auf Ihren Seiten zu laden, sollten Sie den $hook Parameter verwenden:

 function enqueue_scripts( $hook ) { if( 'my-page' != $hook ) return; wp_enqueue_script('jquery'); wp_enqueue_media(); // etc... } add_action('admin_enqueue_scripts', 'enqueue_scripts'); 

Bezüglich des Ladeproblems. Dies scheint immer noch ein offenes Problem zu sein. Auf das Ticket 27985 folgte # 32264 , das noch nicht geschlossen ist. Die letzte Bearbeitung war 24 Stunden her 🙂

Sieht so aus, als ob sie nach einer Lösung suchen und sie bald implementieren werden 🙂