WordPress  
  ワードプレスのテーマまでのURLを定数に定義して使う方法
2018
18
Aug

ワードプレスのテーマまでのURLを定数に定義して使う方法

最終更新日: 2020年1月12日

テーマまでのURLを出力するのに get_stylesheet_directory_uri() をよく使います。
今まであまり考えていなかったのですが、以下のように get_stylesheet_directory_uri() は様々なことを処理しています。
何回も get_stylesheet_directory_uri() を使用するなら定数にしておいた方がチョットだけ無駄がないように思います。

素人でも使えるようにフィルターを設定したり入力値を検証したり、ワードプレスは親切設計です。
home_url() などもそうです。ワードプレスのコアファイルの中で何度も何度も使われています。

自分でワードプレスを使うのであれば、ここまで用心することはありません。
顧客サイトを作る場合は echo esc_url( home_url() ); などと書きますが自分で使うサイトでは echo home_url(); で間に合います。

wp-includes/theme.php


/**
	* Retrieve stylesheet directory URI.
	*
	* @since 1.5.0
	*
	* @return string
*/

function get_stylesheet_directory_uri() {
	$stylesheet = str_replace( '%2F', '/', rawurlencode( get_stylesheet() ) );
	$theme_root_uri = get_theme_root_uri( $stylesheet );
	$stylesheet_dir_uri = "$theme_root_uri/$stylesheet";

/**
	* Filters the stylesheet directory URI.
	*
	* @since 1.5.0
	*
	* @param string $stylesheet_dir_uri Stylesheet directory URI.
	* @param string $stylesheet         Name of the activated theme's directory.
	* @param string $theme_root_uri     Themes root URI.
*/
	return apply_filters( 'stylesheet_directory_uri', $stylesheet_dir_uri, $stylesheet, $theme_root_uri );
}

そこで

ワードプレスのテーマまでのURLを定数に定義

する。

ワードプレスには wp-content までは定数が存在しています。
WP_CONTENT_URL がそうです。これをつかって定義します。

functions.php


define (THEME_URL, WP_CONTENT_URL.'/themes/テーマ名');

//今まで echo get_stylesheet_directory_uri(); と書いていた場所に置き換えます。
echo THEME_URL;

これで、無駄に同じ関数を何度も使うことを避けることができるようになります。

※ echo WP_CONTENT_URL.’/themes/テーマ名’; が何も定義しないですぐに使えて便利かもしれません。

 

top