.jsファイルを子テーマにエンキューしたい


16

子テーマディレクトリでカスタム.jsファイルをキューに入れようとしました。

子テーマのfunctions.phpで、次のコードを見つけます

/* 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' ) );
}

この部分のみが私によって実装され、js /フォルダからcustom.script.jsをロードすることになっています

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

残念ながら、そうはしません。誰か助けてもらえますか?

*更新2

コードは次のようになり、機能します。他のadd_actionに関数を追加したときは機能しませんでした。助けてくれてありがとう!それでも、このコードを少し減らす方法はないのだろうか。

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' )
);
        }

この行は何のためですか?

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

それは必要ですか?


wp_enqueue_script( 'custom-script.js', get_stylesheet_directory_uri() . 'js/custom-script.js', array('jquery') );
ピーターグーセン

@Pieter私はあなたの変更を適応しましたが、まだ機能していません。これは私の.jsファイルにあるもので、たとえばpage.phpに直接配置すると機能します。<script> if(jQuery){alert( "jQuery library is loaded!"); } else {alert( "jQueryライブラリが見つかりません!"); } </ script>
MrKainig

@Pieterわかりました質問にコードを入れて
-MrKainig

jsファイルからスクリプトタグを削除します
Pieter Goosen

回答:


31

これが実際の例です:

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' )
);
        }

または、明らかに高速にロードされるこのように:

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' );

ソースhttp://codex.wordpress.org/Function_Reference/wp_enqueue_script

get_template_directory_uri() 親テーマでのみ機能します。


1
使ってみませんget_stylesheet_directory_uri()か?
ピーターグーセン

どちらも私のテストに基づいて機能します。
ブラッドダルトン

最初のものを試しましたが、うまくいきませんでした。完全なコードブログ(既存および作業中のエンキューを含む)を投稿できますか?既に私のfunctions.phpにあるコードで適切にコードを実装する方法がわからないため
MrKainig

2
はい、できますが、get_stylesheet_directory_uri()より高速です:-)
Pieter Goosen

その唯一の例です。コードでどのように機能するかを学習するには、あなたに代わっていくつかの作業が必要です。これで、テーマにスクリプトをロードするようにコードを修正できます。
ブラッドダルトン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.