WordPressのテーマ作りの時、ローカルで作ったりテストサイトで作ったりしますよね。または最後にwordpressのサイトURLを変えて公開!なんてこともクライアントに納品する時は、よくあるんじゃないでしょうか。

http://example.com/wpの「wp」最終的にはとりたいですよね。でもあわよくば絶対パスなんかでテーマを作成しちゃうとあとあと面倒です。
もちろんwordpress関数をかけば問題ないんですけど、そこはほらやっぱり全体的に効率よく作りたいわけですよ。
例えば、テーマ内で使用する画像を「メディアにアップロード」なんてしてしまうと、こいつはあとあと面倒なわけですね。初期でやりがちですね。

そんな時にfunctions.phpにいつも以下のオリジナルショートコードをいつも入れておきましょ。

で毎回毎回絶対パスが同のこので悩んだりするはやめましょ。

サイトURLを取得するオリジナルショートコードを作成

functions.phpに以下を入力

function shortcode_url() {
    return get_bloginfo('url');
}
add_shortcode('url', 'shortcode_url');

/* 投稿内で [url] と記述する */

これで、http://example.com/wpの「wp」をあとあと気にせずにすんなりサイトURLを変更できちゃいますね。

wordpress関数でいうところの「blobinfo(‘url’)」ですね。

投稿内、固定ページ内でどんどん使いましょう。

 

テーマフォルダ(親)のパスを取得するオリジナルショートコードを作成

functions.phpに以下を入力


function tmp_dir() {
    return get_template_directory_uri();
}
add_shortcode('tdir', 'tmp_dir');

/* 投稿内で [template_url] と記述する */

これで、http://example.com/wp/wp-content/themes/theme-nameのなんて打つ必要もなし!

wordpress関数でいうところの「blobinfo(‘template_url’)」ですね。

同じく投稿内、固定ページ内でどんどん使いましょう。

子テーマ使ってる人は親テーマのパスになってしまうんで間違えないでくださいね。

 

子テーマフォルダのパスを取得するオリジナルショートコードを作成

functions.phpに以下を入力

function child_dir() {
    return get_stylesheet_directory_uri();
}
add_shortcode('cdir', 'child_dir');

/* 投稿内で [child_url] と記述する */

子テーマ使いのあなた。あなたはこっちを使ってくださいね。間違って親用のショートコードを入力して、スタイルをいじっているのにいつまでたっても反映されない…なんてマヌケなことだけは避けましょう。

 

ウィジェットでもショートコードを使用可能にする

ついでにこれも登録しておきましょ。ウィジェットで絶対パスとかもうナンセンスですからね。

functions.phpに以下を入力

add_filter('widget_text', 'do_shortcode');

 

まとめ

function shortcode_url() {
    return get_bloginfo('url');
}
add_shortcode('url', 'shortcode_url');

function tmp_dir() {
    return get_template_directory_uri();
}
add_shortcode('tdir', 'tmp_dir');

function child_dir() {
    return get_stylesheet_directory_uri();
}
add_shortcode('cdir', 'child_dir');

add_filter('widget_text', 'do_shortcode');

[url]・・・サイトURLを取得
[tdir]・・・テーマフォルダ(親)のパスを取得
[cdir]・・・子テーマフォルダのパスを取得する

因みにPHPファイルに記述する時は

<?php echo do_shortcode('[url]'); ?>

<?php echo do_shortcode('[tdir]'); ?>

<?php echo do_shortcode('[cdir]'); ?>

さぁ少しずつでも効率よくサイト作成していきましょう。