Ich möchte zeigen, welche Skripte und Stile auf einer Seite geladen wurden und welche Plugins/Designs/Dateien sie zur Seite hinzugefügt haben.
Wir können alle Skripte und Stile anzeigen mit:
<?php
global $wp_scripts, $wp_styles;
var_dump( $wp_scripts );
var_dump( $wp_styles );
?>
Oder eleganter mit dieser Antwort: Wie bekomme ich das $ -Handle für alle in die Warteschlange gestellten Skripte?
Ich möchte jetzt in der Lage sein, zu sehen, wo sie sich in der Warteschlange befanden. Wenn ich zum Beispiel eine JS-Datei namens foobar.js hätte und diese von plugins/organge/orange.php in die Warteschlange gestellt wurde, würde ich diesen Speicherort zusammen mit dem Skript ausgeben wollen.
Dies ist für die Entwicklung gedacht, um zu isolieren, was was lädt.
So wie Sie denken, ist das nicht möglich. Es wäre vielleicht möglich, wenn Sie Reflections oder debug_backtrace()
verwenden, aber es gibt keinen zuverlässigen Weg, dies zu tun. WordPress speichert keinen Stapel oder keine Warteschlange, in der Dateinamen aufgezeichnet werden.
Die only Sache, die ich mir vorstellen könnte, ist, einfach in die Action und in wp_enqueue_scripts()
einzusteigen:
wp_enqueue_scripts
und fügen Sie einen Tracking-Mechanismus von angehängten Rückrufen hinzu. Beachten Sie die s
und dass dies nicht die Funktion ist, die Sie zum Anhängen von Skripten an den Stapel verwenden.
<?php
/** Plugin Name: (WPSE #152658) Script Loader Callback Inspector */
add_action( 'wp_enqueue_scripts', function()
{
var_dump( $GLOBALS['wp_filter'][ current_filter() ] );
}, PHP_INT_MAX -1 );
Dies würde Sie mit einer Warteschlange aller angehängten Rückrufe verlassen. Sie können sie dann mit Ihrer IDE zurückverfolgen.
Ich benutze so etwas
foreach( $wp_scripts->queue as $handle ) :
$obj = $wp_scripts->registered [$handle];
$filename = $obj->src;