質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

1回答

2543閲覧

wordpressカスタムフィールドでテンプレートタグを使用したい

castail

総合スコア117

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2015/04/23 03:54

wordpressについて質問です。

カスタムフィールドでテンプレートタグを使用したいです。
具体的にはカスタムフィールドで個別ページごとに独自のjs・cssを読み込んでいます。
そこの呼び出しで動的URL「<?php bloginfo('template_url'); ?>」を使用したいと考えています。

ご回答の程よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

テーマを変更する予定があるのでしたら、動的にURLを表示したいですよね。
最近私も似たようなことをやりましたので、よかったらご参考にどうぞ。

【WordPress】特定の個別記事・ページだけにヘッダ、CSS、JavaScriptを追加できるカスタムフィールドを作る

bloginfo('template_url')は非推奨ですので使用するなら下記のコードがお薦めです。

lang

1<?php echo get_template_directory_uri(); ?>

また、PHPタグではなく、代わりにショートコードで実現する方法を提案します。
元々、カスタムフィールドでショートコードは使えませんので、カスタムフィールドの値を表示する箇所でフィルターを適用してショートコードを有効化させます。

lang

1<?php 2// ショートコードを使わない場合 3// echo get_post_meta(get_the_ID(), 'custom_field_name', true); 4// ショートコードを使う場合 5echo apply_filters('the_content', get_post_meta(get_the_ID(), 'custom_field_name', true)); 6?>

カスタムフィールド名は使用している名称に置き換えてください。
'the_content'フィルターを適用することで指定したカスタムフィールドはショートコードが有効になります。

ショートコードを追加する場合は次のソースコードをfunctions.phpへ追記します。

lang

1<?php 2/* 3 * 親テーマのディレクトリまでのパスを取得するショートコードを追加 4 */ 5function getTemplateDirectoryUrl() { 6 return get_template_directory_uri(); 7} 8add_shortcode('theme_url','getTemplateDirectoryUrl'); 9 10/* 11 * 子テーマのディレクトリまでのパスを取得するショートコードを追加 12 */ 13function getStylesheetDirectoryUri() { 14 return get_stylesheet_directory_uri(); 15} 16add_shortcode('theme_child_url','getStylesheetDirectoryUri'); 17?>

ショートコードの名称は任意に変更ください。
実際のカスタムフィールドには下記のように入力すれば良いかと思われます。

lang

1<!-- 親テーマディレクトリを参照 --> 2<script src="[theme_url]/js/sample.js"></script> 3<!-- 子テーマディレクトリを参照 --> 4<script src="[theme_child_url]/js/sample.js"></script>

投稿2015/04/24 09:50

編集2015/05/08 08:39
ucan-lab

総合スコア888

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

castail

2015/05/08 03:12

ご連絡が遅くなり、大変申し訳ございませんでした。 ご回答誠に有難うございます。 ご指示頂いた内容で試してみたのですがうまくいきませんでした。。 「echo apply_filters('the_content', get_post_meta(get_the_ID(), 'custom_field_name', true));」を挿入するステップについてご質問です。 [1] 該当カスタムフィールドがフッターにある場合、footer.php内の「<?php get_template_part('custom_field_name'); ?>」の記述部分に挿入するということでしょうか?   その場合、前と後のどちらに記載するなど決まりはございますか? [2] <?php ?>タグで囲む必要は無いのでしょうか? 以上、ご回答の程よろしくお願い致します。
ucan-lab

2015/05/08 08:43

[1] footer.phpではなくfunctions.phpの話です。 castailさんが作成した『個別ページごとに独自のjs・cssを読み込む』カスタムフィールドを定義している部分のことです。 「<?php echo get_post_meta(get_the_ID(), 'custom_field_name', true); ?>」 おそらく、上記のように記述されている場合は次のように修正する必要があります。 <?php echo apply_filters('the_content', get_post_meta(get_the_ID(), 'custom_field_name', true)); ?> apply_filtersではカスタムフィールドでショートコードを使えるようにしています。 ▼参考サイト [WordPressのカスタムフィールドでショートコードを使う](http://kachibito.net/wordpress/using-shortcode-with-cf.html) [2] 必要です。(コメント内のソースを修正しておきます)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問