it-swarm.com.de

Laden von Skripten auf bestimmten Seiten

Im Child-Theme habe ich eine functions.php-Datei erstellt, die Skripte und Style-Dateien lädt. Der Code ist unten. Der Abschnitt, der Bibliotheken und Skripte auf alle Seiten außer admin lädt, dh die ersten beiden Funktionen, funktioniert wie erwartet. Die dritte Funktion zum Laden eines Skripts für eine bestimmte Seite wird jedoch nicht geladen. Es scheint, dass mein Problem mit der Angabe des Seitenzustands zu tun hat. Der Rest des Codes für Register und Enqueue funktioniert, wenn er in der allgemeinen Funktion abgelegt ist, die Skripte für andere Seiten als Verwaltungsseiten lädt. Ich habe nachgeforscht, dass dies keine Beispiele finden kann, die zeigen, warum der Ansatz, den ich verwendet habe, nicht funktioniert. Ich habe die Seiten-ID mit dem Namen der Seite vertauscht, aber ohne Erfolg.

Jeder Hinweis auf die Ursache des Problems wäre sehr dankbar.

Vielen Dank.

    <?php

function scripts () {
    if ( !is_admin() ) { 
        wp_enqueue_script('jquery');
        wp_register_script('jqueryUI', "path", array('jquery')); //register custom UI library
        wp_enqueue_script('jqueryUI');
        wp_register_script('popUp1', ("path"), array('jquery', 'jqueryUI'));
        wp_enqueue_script('popUp1');
        wp_register_script('popUpText', 'path', array('jquery', 'jqueryUI'));
        wp_enqueue_script('popUpText');
    }
}

add_action('init', 'scripts');

//INSERT CSS    files into the header
function styles () {
    if ( !is_admin() ) {
        wp_register_style('jqueryUIcss', "path");
        wp_enqueue_style('jqueryUIcss');
        wp_register_style('valuecss', "path");
        wp_enqueue_style('valuecss');
    }
}   
    add_action('init', 'styles');

//Add scripts for pop ups on "how to estimate value" page
function pagePopUps1 () {
    if ( is_page(16)) { 
        wp_register_script('popUpVideo1', "path", array('jquery', 'jqueryUI'));
        wp_enqueue_script('popUpVideo1');

    }
}

add_action('init', 'pagePopUps1');  



//End of file
?>

Der Kürze halber habe ich die src's entfernt, aber diese wurden validiert und sind nicht die Quelle des Problems.

2
dorich

Ich würde vorschlagen, das sich registrierende Skript in die Aktion init zu verschieben und die Enqueue (s) in einen Callback zu verschieben, der mit wp_print_scripts verknüpft ist.

Z.B.

add_action( 'init', 'register_those_scriptsNstyles' );

function register_those_scriptsNstyles() {
    wp_register_script( .. your script params .. );
    wp_register_style( .. your style params ..  );

    ..etc..
}

add_action( 'wp_print_scripts', 'enqueue_those_scriptsNstyles' );

function enqueue_those_scriptsNstyles() {

    if( !is_page( 'some-page' ) ) // If it's not the given page, stop here
        return;

    wp_enqueue_script( .. your script params .. );
    wp_enqueue_style( .. your style params .. );

    ..etc..
}

ANMERKUNG: Trotz des Hakennamens bin ich mir ziemlich sicher, dass wp_print_scripts auch zum Einreihen von Stilen in Ordnung sein sollte. Der wichtige Faktor besteht darin, nur sicherzustellen, dass der von Ihnen verwendete Hook spät genug eintritt, damit die Tags für bedingte Vorlagen festgelegt werden können, d. H. is_page, is_category und so weiter ..
Wenn nicht, versuchen Sie stattdessen wp_head .. zB. add_action( 'wp_head', 'your-callback' )

BEARBEITEN: Bei Stilen hat genau wie auf der Administratorseite die öffentlich zugängliche Seite eine Aktion für Stile zu ..., die wp_print_styles ... ist. (Haken Sie Warteschlangen für Stile an).

Hoffentlich hilft das..

2
t31os

Die ersten Dinge, die in solchen Fällen überprüft werden müssen:

  • ist die Hakenfunktion richtig aktiviert?
  • dieser Zustand wird zum erwarteten Ergebnis ausgewertet.

Fügen Sie Ihrer Funktion var_dump( is_page(16) ); hinzu und prüfen Sie, ob diese wie erwartet funktionieren.

0
Rarst