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

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

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

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

Q&A

解決済

2回答

2720閲覧

<?php get_template_directory_uri(); ?>が機能していない?

kamakura

総合スコア39

WordPress

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

0グッド

0クリップ

投稿2019/08/16 01:34

編集2019/08/16 01:51

前提・実現したいこと

wordpress(WordPress 4.9.10)の固定ページに下記内容を入力しましたが、<ol>以降の表示がされません。
考えられる原因が分からず困っているため、お力を貸していただけますと幸いです。

その他必要な情報があれば追記します。何卒、宜しくお願い致します。

発生している問題・エラーメッセージ

Firefoxを使用しており、「ページのソースを表示」で確認するとコード自体は存在するようですが、表示されない部分(<li></ol>)は赤色の太字で表示されています。
マウスオーバーすると「属性の間に空白があります。属性の間に空白があります。属性の間に空白があります。」と出ますが、見る限り余分な空白はないように思いました。

該当のソースコード

▼固定ページに記載した内容

html

1<h3>タイトル</h3> 2<p>文章</p> 3<ol> 4 <li><a href="<?php echo get_template_directory_uri(); ?>/pdf/01.pdf">01</a></li> 5 <li><a href="<?php echo get_template_directory_uri(); ?>/pdf/02.pdf">02</a></li> 6 <li><a href="<?php echo get_template_directory_uri(); ?>/pdf/03.pdf">03</a></li> 7</ol> 8

▼functions.php

<?php //<title></title> add_theme_support('title-tag'); //概要(抜粋)の文字数 function my_length($length){ return 100; } add_filter('excerpt_mblength','my_length'); //概要(抜粋)の省略記号 function my_more($more){ return '&nbsp;[ 続きを読む ]'; } //投稿サムネイル対応の有効化 if ( function_exists( 'add_theme_support' ) ) { add_theme_support( 'post-thumbnails' ); set_post_thumbnail_size( 150, 150, true ); // デフォルト投稿サムネイルサイズ (切り出しモード) // 追加の画像サイズ // 追加の画像サイズが必要なければ次の行を削除 add_image_size( 'category-thumb', 300, 9999 ); // 横 300px (縦 制限なし) } add_filter('excerpt_more','my_more'); //カスタムヘッダー(top_photo) $defaults = array( 'default-image' => 'ほにゃほにゃ.jpg', 'width' => 950, 'height' => 250, 'uploads' => true, ); add_theme_support( 'custom-header', $defaults ); /************************************ カスタムメニュー ************************************/ register_nav_menu( 'sitenav', 'サイトナビゲーション'); register_nav_menu( 'pagenav', 'ページナビゲーション'); //サイドバーを1つ設置する register_sidebar( array( 'name'=>'サイドバー', 'id' => 'sidebar_top', 'before_widget'=>'<aside class="mymenu">', 'after_widget'=>'</aside>', 'before_title' => '<p class="mymenu-title">', 'after_title' => '</p>' )); //投稿にアーカイブ(投稿一覧)を持たせるようにします。 //※ 記載後にパーマリンク設定で「変更を保存」してください。 function post_has_archive( $args, $post_type ) { if ( 'post' == $post_type ) { $args['rewrite'] = true; $args['has_archive'] = 'post-all'; // ページ名 } return $args; } add_filter( 'register_post_type_args', 'post_has_archive', 10, 2 ); //奇数番目の記事に○○○する function is_odd_post() { global $wp_query; return ( (($wp_query->current_post+1) % 2) === 1 ); } //カスタム背景 $defaults = array( 'default-color' => '', 'default-image' => '', 'default-repeat' => '', 'default-position-x' => '', 'default-attachment' => '', 'wp-head-callback' => '_custom_background_cb', 'admin-head-callback' => '', 'admin-preview-callback' => '' ); add_theme_support( 'custom-background', $defaults ); //トグルボタン function navbtn_scripts(){ wp_enqueue_script('navbtn-script', get_template_directory_uri() .'/navbtn.js', array('jquery')); } add_action('wp_enqueue_scripts', 'navbtn_scripts'); //リンク先を_blank(新しいタブ)で固定 function autoblank($text) { $return = str_replace('<a', '<a target="_blank"', $text); return $return; } add_filter('the_content', 'autoblank'); //JavaScript を読み込む記述のうち、defer や async が指定されていないものに、async を付ける if ( !(is_admin() ) ) { function replace_scripttag ( $tag ) { if ( !preg_match( '/\b(defer|async)\b/', $tag ) ) { return str_replace( "type='text/javascript'", 'async', $tag ); } return $tag; } add_filter( 'script_loader_tag', 'replace_scripttag' ); }

試したこと

<?php echo get_template_directory_uri(); ?>を削除する(<li><a href="URLコピペ">01</a></li>)と問題なく表示されます。

ですが根本的な解決にはなっていないのと、出来れば関数を使用したいと考えております。

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

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

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

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

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

YukiYamashina

2019/08/16 03:49

> Firefoxを使用しており、「ページのソースを表示」で確認するとコード自体は存在するようですが、表示されない部分(<li>~</ol>)は赤色の太字で表示されています。 Chrome で見た場合にどのようになっているかスクリーンショットを追加していただけますでしょうか?
beginner_t

2019/08/16 04:26 編集

これは管理画面から固定ページの編集の中に書いているんですか?それともpage.phpに書いてるんですか? 追記 すいません。 下の解答の返信にありましたね。
kamakura

2019/08/16 05:32

> YukiYamashina さん、beginner_t さん 当質問を見て頂き有難うございます...! BAにて原因が判明したため今回追記は行いませんが、今後質問する際の参考にさせて頂こうと思います。
guest

回答2

0

ベストアンサー

通常、投稿画面ではphpは使えない仕様です。
なので、投稿画面でphpのコードが使いたい場合はショートコードにして呼び出すのがよいと思います。

投稿2019/08/16 04:26

beginner_t

総合スコア716

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

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

kamakura

2019/08/16 05:29

回答頂き有難うございます! 仰る通り、管理画面の固定ページにてコードを入力しておりました。 初歩的な質問でとても恥ずかしく思います...。 今後はアドバイス頂いたようにショートコードを用いようと思います。
beginner_t

2019/08/16 06:11

そうですね。ほかの方の回答のようなショートコードを書くこともできますし、「str_replace」を使って 「pdf/01.pdf」と記載するだけで「pdf」の部分をルートディレクトリに置き換えるような方法もできます。これならショートコードを書くこともしなくていいので楽です。 あらかじめfunction.phpにimgの場合やpdfの場合などわけて書いてると、あとは自動でルートディレクトリに置き換えてくれます。 よければ調べてみてください。
guest

0

ショートコードをつかってみてはどうでしょうか。
function.phpに以下を追記

function.php

1add_shortcode('sc_gtd_url', 'shortcode_gtd_url'); 2function shortcode_gtd_url() { 3 return get_template_directory_uri(); 4}

ショートコードを固定ページに記入。

<li><a href="[sc_gtd_url]/pdf/01.pdf">01</a></li>

これでできるかなと思います。
設定などでショートコードが使えない場合は解除など必要に応じて。

投稿2019/08/16 02:07

tukatter

総合スコア284

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

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

kamakura

2019/08/16 03:42

ご丁寧に回答頂き有難うございます! 提示いただいた方法だと問題なく表示されました...! <?php echo get_template_directory_uri(); ?>を固定ページに直接記載するのが良くなかったのでしょうか...? 直接記載する方法で解決は出来ないのか知りたいところがありますので、一旦BAは保留にさせて頂きます。申し訳ありません...。
tukatter

2019/08/16 15:09

ベストアンサーじゃなかったのですね。 固定ページは、phpスクリプトを使うことができません。 悪意ある操作をされないためです。 実装したいならfunction.phpと同じ階層に 「page-1(固定ページのID).php」page.phpのコピーでもいいです というファイルを作成して記述してみたり テンプレートファイルを作成して読み込ませるなどで実装することになります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問