22 3月 2019
WordPress ショートコードが表示されないを解決
WordPressで、トップページのURLやテンプレートファイル内にある画像などを
固定ページや投稿ページから簡単に呼び出すショートコード。
テストディレクトリでテストして、本アップ時にURLが変わるときなどは便利です。
設定準備
まずは
function.php に以下を追加
<!-- ベースURL(トップページ) --> function shortcode_url() { return get_bloginfo('url'); } add_shortcode('url', 'shortcode_url'); <!-- テンプレートURL --> function shortcode_templateurl() { return get_bloginfo('template_url'); } add_shortcode('template_url', 'shortcode_templateurl');
例:トップページへのリンク
固定ページで、使いたいところに [url] を記述
<a href="[url]">トップページへ</a>
出力結果
<a href="http://es.istgut.jp">トップページへ</a>
例:テンプレートURLの呼び出し
固定ページで、使いたいところに [template_url] を記述
<img src="[template_url]/img/icon.png">
出力結果
<img src=http://es.istgut.jp/wp-content/themes/hoge/img/icon.png">
phpへの記述
page.phpなどでは、テンプレートへの記述は
<?php the_content(); ?>
でショートコードがURLに変換されて出力されます。
トップページのindex.phpなどで特定の固定ページを取得する場合、
<?php $page_data = get_page_by_path('スラッグ'); $page = get_post($page_data); $content = $page -> post_content; echo $content; ?>
ですが、固定ページ内でショートコードを使っていた場合、変換されずに出力されてしまうので、
do_shortcode で取得します。
<?php $page_data = get_page_by_path('スラッグ'); $page = get_post($page_data); $content = do_shortcode($page->post_content); echo $content; ?>
でオッケイ。