web-dev-qa-db-ja.com

外部のルートディレクトリ内のファイルへのリンク WP インストール

私はそのブログに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'));

できれば絶対リンクを避けたいのですが。他に方法はありますか?

2
amylynn83

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'));
1
Mathew Tinsley