Ich möchte eine .js-Datei in ein untergeordnetes Thema einreihen

16

Ich habe versucht, eine benutzerdefinierte .js-Datei in mein untergeordnetes Designverzeichnis einzureihen.

In der functions.php meines Kinderthemas finde ich folgenden Code

/* After this. you can override Accessible Zen's pluggable functions or add your own.
 * Remember, do your best to stay accessible! :)
 *
 */
 add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_script( 'custom-script.js', 'js/custom-script.js', array('jquery') );
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_uri(), array( 'parent-style' ) );
}

wo nur dieser teil von mir implementiert wurde und meine custom.script.js aus dem js / ordner laden soll

wp_enqueue_script( 'custom-script.js', 'js/custom-script.js', array('jquery') );

Leider tut es das nicht, kann jemand helfen?

* Update 2

Der Code sieht jetzt so aus und es funktioniert, es hat nicht funktioniert, als ich die Funktion der anderen add_action hinzugefügt habe. Danke an alle für die Hilfe! Ich frage mich immer noch, ob es keine Möglichkeit gibt, diesen Code ein wenig zu kürzen.

add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_uri(), array( 'parent-style' ) );
}

/*add my custom jquery script*/
add_action( 'wp_enqueue_scripts', 'menu_scripts' );
function menu_scripts() {
wp_enqueue_script( 'responsive-menu', get_bloginfo( 'stylesheet_directory' ) . '/js/responsive-menu.js', array( 'jquery' ), '1.0.0' );
wp_enqueue_script(
    'custom-script',
    get_stylesheet_directory_uri() . '/js/custom-script.js',
    array( 'jquery' )
);
        }

Wofür ist diese Linie?

wp_enqueue_script( 'responsive-menu', get_bloginfo( 'stylesheet_directory' ) . '/js/responsive-menu.js', array( 'jquery' ), '1.0.0' );

Ist es nötig?

MrKainig
quelle
wp_enqueue_script( 'custom-script.js', get_stylesheet_directory_uri() . 'js/custom-script.js', array('jquery') );
Pieter Goosen
@Pieter Ich habe dein Wechselgeld angepasst, aber es funktioniert immer noch nicht. Dies ist, was ich in meiner .js-Datei habe und es funktioniert, wenn ich es direkt in page.php setze, zum Beispiel: <script> if (jQuery) {alert ("jQuery library is loaded!"); } else {alert ("Die jQuery-Bibliothek wurde nicht gefunden!"); } </ script>
MrKainig
@Pieter Okay, ich habe den Code in die Frage gestellt
MrKainig
Entfernen Sie die Skript-Tags aus Ihrer js-Datei
Pieter Goosen

Antworten:

31

Hier ist ein funktionierendes Beispiel:

add_action( 'wp_enqueue_scripts', 'menu_scripts' );
function menu_scripts() {
wp_enqueue_script( 'responsive-menu', get_bloginfo( 'stylesheet_directory' ) . '/js/responsive-menu.js', array( 'jquery' ), '1.0.0' );
wp_enqueue_script(
    'custom-script',
    get_stylesheet_directory_uri() . '/js/custom_script.js',
    array( 'jquery' )
);
        }

Oder so, was anscheinend schneller lädt:

function my_scripts_method() {
    wp_enqueue_script(
        'custom-script',
        get_stylesheet_directory_uri() . '/js/custom_script.js',
        array( 'jquery' )
    );
}

add_action( 'wp_enqueue_scripts', 'my_scripts_method' );

Quelle http://codex.wordpress.org/Function_Reference/wp_enqueue_script

get_template_directory_uri() funktioniert nur in einem übergeordneten Thema.

Brad Dalton
quelle
1
Warum benutzt du nicht get_stylesheet_directory_uri()?
Pieter Goosen
Sie arbeiten beide auf der Grundlage meiner Tests.
Brad Dalton
Ich habe das erste ausprobiert, es hat nicht funktioniert. Können Sie vielleicht den vollständigen Code-Blog veröffentlichen (einschließlich meiner vorhandenen und aktiven Warteschlangen)? Weil ich nicht weiß, wie ich Ihren Code mit dem Code, der bereits in meiner functions.php
enthalten ist
2
Ja, aber es get_stylesheet_directory_uri()geht schneller :-)
Pieter Goosen
Es ist nur ein funktionierendes Beispiel. Einige Arbeiten sind in Ihrem Auftrag erforderlich, um zu erfahren, wie sie mit Ihrem Code funktionieren. Sie können Ihren Code jetzt überarbeiten, damit er Ihre Skripte in Ihr Thema lädt.
Brad Dalton