私はそのブログにWordPressを使用しているWebサイトを持っています(Webサイト自体はWordPressではありません)。だから、構造は次のとおりです。
www.website.com (not WordPress)
www.website.com/blog (WordPress)
Webサイトとブログの両方に使用されるJavaScriptファイルがあります。しかし、私がfunctions.phpファイル内のファイルにリンクすると、WordPressはテーマ内でそれを見つけようとします。
// Register the script
wp_register_script('circle-bounce', get_template_directory_uri() . '/js/general.js', array( 'jquery', 'jquery-effects-core', 'jquery-effects-bounce'));
これはwordpressの子テーマのフォルダ内でgeneral.jsファイルを探します。出典では、それはにリンクします:
http://www.website.com/blog/wp-content/themes/twentytwelve/js/general.js?ver=4.2.2
私は実際にはWebサイトのルートにあるjsフォルダ内のファイルを取得するためにそれが必要です。そのため、ファイルは実際には次の場所にあります。
website.com/js/general.js
これを達成できた唯一の方法は、登録を次のように変更することです。
// Register the script
wp_register_script('circle-bounce', 'http://www.website.com/js/general.js', array( 'jquery', 'jquery-effects-core', 'jquery-effects-bounce'));
できれば絶対リンクを避けたいのですが。他に方法はありますか?
get_template_directory_uri
はテーマディレクトリのURLを返すので、最初の試みはうまくいきません。
2回目の試みでもうまくいきますが、ドメインをハードコードしたくない場合は、ルート相対パスを使用するか、サイトURLのドメイン部分を取得することを試みることができます。
相対パス
wp_register_script('circle-bounce', '/js/general.js', array( 'jquery', 'jquery-effects-core', 'jquery-effects-bounce'));
ドメイン:
$parts = parse_url(site_url());
$domain_url = $parts['scheme'] . '://' . $parts['Host'];
wp_register_script('circle-bounce', $domain_url . '/js/general.js', array( 'jquery', 'jquery-effects-core', 'jquery-effects-bounce'));