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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

1747閲覧

javascriptのコード内でWordPressのカスタムフィールドを読み込みたいです。

yai01

総合スコア11

WordPress

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/06/22 23:17

前提・実現したいこと

javascriptのコード内でWordPressのカスタムフィールドを読み込みたいです。
プログラム自体は簡易的な掲示板で「bbs.pageid」で指定したログファイルを参照して表示するものです。

該当のソースコード

■561と直接記入すると正常に動作します。

<!-- ログを読み込む部分 --> <script type="text/javascript" charset="Shift_JIS"> bbs.pageid = '561' ; </script>

■カスタムフィールドを取得して自動入力させようとすると失敗します。
プログラムの知識が無くて色々なサイトを参考にして真似してみたのですが、うまくいきません。
やろうとしていることは下のようなイメージです。(customfield01には561が入力されています)

×失敗

<script type="text/javascript" charset="Shift_JIS"> bbs.pageid = 'echo get_post_custom()['customfield01'][0];' ; </script>

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

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

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

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

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

guest

回答2

0

ベストアンサー

PHP

1function my_shortcode_ex2js_handler6($atts, $content=null) { 2 return '<script>bbs.pageid = "'.get_post_custom()['customfield01'][0].'";</script>'; 3} 4add_shortcode('sc_test6', 'my_shortcode_ex2js_handler6');

投稿2019/06/23 11:49

kei344

総合スコア69407

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

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

yai01

2019/06/25 07:25

おおお!動きました! ずっと苦戦していたので本当に助かりました。 回答してくださったお二方に感謝いたします。 function my_shortcode_ex2js_handler6($atts, $content=null) { return '<script>bbs.pageid = "'.get_post_custom()['customfield01'][0].'";</script>'; } add_shortcode('sc_test6', 'my_shortcode_ex2js_handler6'); ソースでの表示(◎正常に動作しました) 561
guest

0

そのJavaScriptのコードのcharsetがShift_JISとか気になる部分はありますが、
もしそのコードが.phpファイルにあるのでしたら

php

1bbs.pageid = '<?php echo get_post_custom()['customfield01'][0]; ?>' ;

PHPタグで囲えばPHPが実行されます。
※実際に利用するときはエスケープ処理は入れてください

投稿2019/06/23 01:12

m.ts10806

総合スコア80850

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

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

yai01

2019/06/23 03:25

回答ありがとうございます。 コードは記事投稿のテキストエディターに入力しています。 ×こちらのコードを試してみましたが、動作しませんでした。 <script type="text/javascript" charset="Shift_JIS"> bbs.pageid = '<?php echo get_post_custom()['customfield01'][0]; ?>' ; </script> また、googleで調べながらfunction.phpにショートコードを登録して実行してみた所、 数字を直接入力すると成功したのですが function my_shortcode_ex2js_handler6($atts, $content=null) { $str=<<<eot <script type="text/javascript" charset="Shift_JIS"> bbs.pageid = '561'; </script> eot; return $str; } add_shortcode('sc_test6', 'my_shortcode_ex2js_handler6'); ×下のように自動で入力させようとするとやはり失敗をしてしまいます。 function my_shortcode_ex2js_handler6($atts, $content=null) { $str=<<<eot <script type="text/javascript" charset="Shift_JIS"> bbs.pageid = '<?php echo get_post_custom()['customfield01'][0]; ?>'; </script> eot; return $str; } add_shortcode('sc_test6', 'my_shortcode_ex2js_handler6'); ■こちらのショートコードを実行すると561と表示されるので、カスタムフィールドに問題はなさそうです。 function shortcode_test5(){echo get_post_custom()['customfield01'][0]; } add_shortcode('sc_test5', 'shortcode_test5');
m.ts10806

2019/06/23 04:43

「動作しない」「ダメだった」だけだと次のアドバイスができませんので、起きた現象をなるべく正確に教えてください。ブラウザ「ソースを表示」などで該当箇所がどうなってるかを確認したりした結果を追記するとか。 もし、 '<?php echo 516;?>'; のように書いてちゃんと516とhtmlソースに出力されているならget_post_custom()という関数が動いてないということにもなりますし(参照できないとか、WordPress配下にないとか、調べる必要はありますが)
yai01

2019/06/23 10:17

お返事ありがとうございます。 色々なコードを書いてソースを確認してみました。 わかりづらくて申し訳ないです。 ■数字を直接入力した場合 <script type="text/javascript" charset="Shift_JIS"> bbs.pageid = '561' ; </script> ↓ ソースでの表示(〇動作しました。ショートコードから稼働させた場合も同様でした。) <script type="text/javascript" charset="Shift_JIS"> bbs.pageid = '561'; </script> ■自動で取得しようとした場合 <script type="text/javascript" charset="Shift_JIS"> bbs.pageid = '<?php echo get_post_custom()['customfield01'][0]; ?>' ; </script> ソースでの表示(×動作しませんでした) <script type="text/javascript" charset="Shift_JIS"> bbs.pageid = '<?php echo get_post_custom()['customfield01'][0]; ?>' ; </script> ■'<?php echo 561;?>';だけを書いた場合 画面上の表示 ‘‘; ソースでの表示 &#8216;<?php echo 561;?>&#8216;; ■bbs.pageid = '<?php echo 561;?>' ;と書いてみた場合 コード <script type="text/javascript" charset="Shift_JIS"> bbs.pageid = '<?php echo 561;?>' ; </script> ソースでの表示(×動作しませんでした) <script type="text/javascript" charset="Shift_JIS"> bbs.pageid = '<?php echo 561;?>' ; </script> ■続いて、function.phpにコードを書いてショートコードから読み込んだ場合です function.phpで'<?php echo 561;?>';を書くと「functions.php ファイルの●行目のエラーのため、PHP コードの変更をロールバックしました。修正し、もう一度保存してください。syntax error, unexpected '<'」と出るため、<?php ;?>は外しています。 function shortcode_test5(){ echo 561;} add_shortcode('sc_test5', 'shortcode_test5'); 画面上の表示 561 ソースでの表示 561 ■function.phpに登録した下のコードをショートコードで読み込んだ場合 <script type="text/javascript" charset="Shift_JIS"> bbs.pageid = '561'; </script> ↓ 〇ソースでの表示(正常に動作しました) <script type="text/javascript" charset="Shift_JIS"> bbs.pageid = '561'; </script> ■function.phpに登録した下のコードをショートコードで読み込んだ場合 この場合は<?php ;?>で囲んでもエラーは出ません。 <script type="text/javascript" charset="Shift_JIS"> bbs.pageid = '<?php echo get_post_custom()['customfield01'][0]; ?>'; </script> ↓ ×ソースでの表示(動作しませんでした) <script type="text/javascript" charset="Shift_JIS"> bbs.pageid = '<?php echo get_post_custom()['customfield01'][0]; ?>'; </script> ■<?php ;?>を抜いた場合 <script type="text/javascript" charset="Shift_JIS"> bbs.pageid = 'echo get_post_custom()['customfield01'][0];'; </script> ↓ ×ソースでの表示(動作しませんでした) <script type="text/javascript" charset="Shift_JIS"> bbs.pageid = 'echo get_post_custom()['customfield01'][0];'; </script> ■function.phpに登録した下のコードをショートコードで読み込んだ場合 function shortcode_test5(){echo get_post_custom()['customfield01'][0]; } add_shortcode('sc_test5', 'shortcode_test5'); 画面上の表示:561 ソースでの表示:561
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問