【WordPress】get_template_directory_uri()とget_stylesheet_directory_uri()の違い

【wordpress】get_template_directory_uri()とget_stylesheet_directory_uri()の違い

閲覧ありがとうございます。

ページテーマ

WordPressでURLを呼び出しているのに動かないを解消

jsを使用したくてfunction.phpにコードを書いたのに動かない…

そんな問題解決につながれば嬉しいです。

\ このサイトで利用しています /

おすすめテーマ

おすすめサーバー

目次

jsが動かない問題と解消の経緯

私はテーマを「SWELL」と「Lightning」の二つを使っていますが、最近cssアニメーションの実行タイミングなどjsを使いたい場面があります。

「SWELL」ではそのままjsコードを記述・反映できるのですが「Lihgtning」ではできないのでjsファイルを用意してfunction.phpで呼び出すコードを記述して実行しようとしました。

ところがファイルはあるはずなのに404エラー(URLが見つからない)。試行錯誤の結果、今回の解決策につながりました。

同じトラブルに会うこともあるかと思いますので備忘録として残しておきます。

結論(動作するphpコードはこちら)

今回の記事の内容の対象となっているサイトのテーマは「Lightning」で子テーマを使っています。

WordPressにはディレクトリのURLを取得する関数があります。

その関数を使って初めに作ったjsファイル読み込みコードがこちら↓

/*jsファイル読み込み*/
add_action( 'wp_enqueue_scripts', function () {
    wp_enqueue_script( 
        'my-custom_script', 
        get_template_directory_uri() . '/js/custom.js', //ディレクトリ内のjsフォルダにあるjsファイルを指定
        array('jquery'), // 依存関係を指定
        null, // バージョン番号を指定(nullの場合はバージョン管理しない)
        true // フッターで読み込む
    );
} );
/*ここまで*/

これでは動作しませんでした。そして修正後がこちら↓

/*jsファイル読み込み*/
add_action( 'wp_enqueue_scripts', function () {
    wp_enqueue_script( 
        'my-custom_script', 
        get_stylesheet_directory_uri() . '/js/custom.js', //ディレクトリ内のjsフォルダにあるjsファイルを指定
        array('jquery'), // 依存関係を指定
        null, // バージョン番号を指定(nullの場合はバージョン管理しない)
        true // フッターで読み込む
    );
} );
/*ここまで*/

5行目の“get_template_directory_uri()”を“get_stylesheet_directory_uri()”に変更して解決しました。

問題は関数の間違い

ディレクトリ内のURLを呼び出す関数の間違いが今回のエラーの原因でした。

関数①「get_template_directory_uri()」

この関数は親テーマのディレクトリのURLを取得します。

子テーマを利用していない場合や親テーマのリソースを呼び出したい場合にはこの関数で良いのですが、私は子テーマのディレクトリにファイルを格納しているのにもかかわらずこちらのコードを使ったことでエラーが出ていました。

関数②「get_stylesheet_directory_uri()」

現在のテーマ(子テーマが有効な場合は子テーマ)のディレクトリのURLを取得します。

親テーマが有効な場合でも子テーマのリソースを優先して取得します。こちらの関数を使うことで今回のエラーは解決しました。

今回は以上になります。なにかの参考になれば嬉しいです。

このサイトはテーマ「SWELL」を使っています

「SWELL」はWordpress初心者も慣れた人も使い続けられるテーマだと思います。

よかったらシェアお願いします!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

事業で使うサイトを企業に依頼し作成したものの、全く機能せず自分で作り直したのがきっかけでウェブの世界に興味を持ち今も吸収中。
Wordpress、コーディング、マーケティングなどウェブlogにアウトプットしています。誰かの問題解決のヒントになれば最高に嬉しいです。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次