So erhalten Sie .js- und .css-Dateien und ersetzen sie

Lesezeit: 3 Minuten

Benutzer-Avatar
Herr Web

Ich erstelle ein WordPress-Plugin.

Die Basis dafür habe ich geschaffen und alles ist korrekt eingerichtet.

Ich habe versucht zu schauen Dies und Dies um zu sehen, ob ich alle Skripte (.js-Dateien) aus der Kopf- und Fußzeile anfordern und abrufen kann.

Ich dachte, das wäre die beste Funktion, aber das Ergebnis funktioniert nicht richtig.

Ich möchte grundsätzlich erhalten die JS- und CSS-Dateien und ersetzen Sie sie durch eine andere Zeichenfolge.

Nehmen wir also an, das ist meine Seite:

<!DOCTYPE html>
<html>
<head>
    <title>Page</title>
    <link rel="stylesheet" href="http://www.example.com/mycss.css" />
</head>
<body>

<script type="text/javascript" src="http://www.example.com/myscript.js"></script>
<script type="text/javascript" src="http://www.example.com/another_script.js"></script>
</body>
</html>

Meine Funktion muss nach den .css- und .js-Dateien suchen und die Zeichenfolge durch andere Dinge ersetzen. Damit wäre das Ergebnis:

<!DOCTYPE html>
<html>
<head>
    <title>Page</title>
    <mytag>Here was contained a CSS from http://www.example.com/mycss.css</mytag>
</head>
<body>

<mytag>Here were contained 2 JS from http://www.example.com/myscript.js and http://www.example.com/another_script.js</mytag>
</body>
</html>

BEARBEITEN
Ich muss tatsächlich den Namen und den Pfad für diese Dateien erhalten.

Ich denke, ich kann einen regulären Ausdruck verwenden, aber ich weiß nicht, wie ich ihn laden soll get_header und get_footer (wenn das die richtigen Funktionen sind)

Benutzer-Avatar
George

Es wäre viel sinnvoller, als das relevante Markup nach Erhalt zu entfernen get_header() und get_footer() Funktionen, um alle Stile und/oder Skripte aus der Warteschlange zu entfernen, damit sie dort gar nicht erst gedruckt werden.

Sie können den Pfad für die Datei erhalten, indem Sie auf die zurückblicken $wp_styles/$wp_scripts Objekte registered Eigentum. Sie können dann fortfahren, um den Dateinamen mit abzurufen basename():

function dequeue_all_styles() {
    global $wp_styles;

    foreach( $wp_styles->queue as $handle ){
        wp_dequeue_style($handle);
        $src = $wp_styles->registered[$handle]->src;
        $filename = basename($src);
    }
}
add_action( 'wp_print_styles', 'dequeue_all_styles', 100 );

function dequeue_all_scripts() {
    global $wp_scripts;

    foreach( $wp_scripts->queue as $handle ){
        wp_dequeue_script($handle);
        $src = $wp_scripts->registered[$handle]->src;
        $filename = basename($src);
    }
}
add_action( 'wp_print_scripts', 'dequeue_all_scripts', 100 );

Wenn Sie haben Sonstiges Stile und Skripte an ihre Stelle zu setzen, verwenden Sie einfach wp_enqueue_style() und wp_enqueue_script().

  • Tut mir leid, ich habe vergessen zu sagen, dass ich den Pfad und den Dateinamen für jeden bekommen muss. Siehe bitte meine Bearbeitung.

    – Mr.Web

    4. August 2015 um 14:21 Uhr

  • Fantastisch!!! Was ist, wenn ich, anstatt die Skripte mit der enqueque-Funktion zurückzuschreiben, benutzerdefinierten Text an derselben Stelle schreiben möchte?

    – Mr.Web

    4. August 2015 um 17:22 Uhr


Sie können auf das in die Warteschlange eingereihte Skript und die Stile zugreifen, indem Sie verwenden $wp_scripts und $wp_styles globale Variablen.

Siehe die Klassenreferenz für WP_Styles und WP_Scripts für verfügbare Methoden und Eigenschaften.

  • Tut mir leid, ich habe vergessen zu sagen, dass ich den Pfad und den Dateinamen für jeden bekommen muss. Siehe bitte meine Bearbeitung.

    – Mr.Web

    4. August 2015 um 14:21 Uhr

  • Ich schätze, du könntest damit arbeiten print_code Eigenschaft, verwenden Sie die reset() Methode zum Löschen der WP_Styles Instanz die Stile dann erneut in die Warteschlange stellen.

    – war

    4. August 2015 um 14:28 Uhr

  • Die Antwort von George scheint angemessener zu sein – verwenden Sie seinen Code, um den Dateinamen und den Pfad zu ändern, und stellen Sie die Stile / Skripte erneut in die Warteschlange.

    – war

    4. August 2015 um 14:36 ​​Uhr

1256920cookie-checkSo erhalten Sie .js- und .css-Dateien und ersetzen sie

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy