テンプレートやサイトのURLを表示させるショートコードの作成方法【WordPress】

WordPressを仮環境で構築するとき、投稿や固定ページに情報を登録していくと思います。その際、画像や内部リンクの設定をすると、仮環境のURLが反映されてしまいます。そのまま本環境で公開をするとドメインの違いにより画像が表示されなかったり、リンク先が表示されなかったりすることになります。
MySQLでの置換で対応はできますが、あらかじめホームのURLやテーマファイルのディレクトリを“ショートコード”で設定していれば、置換作業無く本環境公開をすることができます。
ここでは、「設定」>「一般」で設定されている『サイトアドレス(URL)』が反映されるものと、『サイトアドレス(URL)』を含めテーマファイルのあるディレクトリまでが反映されるものの2種類のショートコードの作り方を記しておきます。

投稿や固定ページの管理画面ではPHPが使えません。HTMLのみです。
ショートコードは、wordpressの管理画面内でHTMLと同様に使用することができます。

「クラシック」ブロックの“HTMLとして編集”もしくは「カスタムHTML」ブロックで [ショートコード名] として使用します。

[hogehoge]

ショートコードは「functions.php」に記述します。
ショートコードの設定は「add_shortcode()」で設定することができます。

add_shortcode( 'ショートコード名', '作業内容function' )

とりあえず下記を「functions.php」にコピペすればOK。

/* HOMEのURLをショートコードで表示
**********************************************/
add_shortcode( 'homeurl', 'shortcode_homeurl' );
function shortcode_homeurl( $atts, $content = '' ) {
	return esc_url( home_url() ).$content;
}
/* テンプレートURLをショートコードで表示
**********************************************/
add_shortcode( 'tp', 'shortcode_tp' );
function shortcode_tp( $atts, $content = '' ) {
	return get_template_directory_uri().$content;
}

上記の場合のショートコードはそれぞれ

[homeurl] <!-- ドメインのショートコード -->
[tp] <!-- テンプレートのディレクトリまでのショートコード -->

となります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です