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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

9167閲覧

ショートコード内に変数を記載するには?

kumadon

総合スコア13

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/12/14 20:34

編集2016/12/14 20:51

Wordpressのショートコードにおいて、取得した変数をショートコード内に記載したいのですが、以下のように記載してもうまくいきません。

<?php $product_id = SCF::get( 'aaa' ); echo( do_shortcode( '[catlist name=”$product_id” ]' ) ); ?>

やりたいこととしては、投稿内にある「aaa」の値を取得し、その値をテキストとして「name=” ”」の中に指定したいのですが…
どなたかご教示頂ければ幸いです。
宜しくお願いします。

【補足】
冒頭の値取得部分は問題なく機能しています。

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

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

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

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

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

guest

回答3

0

シングルクォート内では変数展開されないので、ダブルクォートに変えたらどうなりますか?

<?php $product_id = SCF::get( 'aaa' ); echo( do_shortcode( "[catlist name=\"$product_id\" ]" ) ); ?>

投稿2016/12/14 21:16

CHERRY

総合スコア25171

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

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

kumadon

2016/12/14 22:16

コメント有り難うございました。 試してみましたが、ページ自体が表示されなくなりました。。 どうにもシングルクォートでないとダメなようです。
CHERRY

2016/12/14 22:35 編集

googlemap を表示するショートコードで動いたので、行けるかと思ったのですが ダメでしたか。 まっしろということは、500エラーだと思うので確認ですが、変数の前後に入ってるダブルクォートは、エスケープされていますよね? 出かけるところなので、未確認ですが変数の前後のダブルクォートを下記のようにシングルクォートにするとどうなるでしょうか? ``` echo( do_shortcode( "[catlist name='$product_id' ]" ) ); ```
kumadon

2016/12/15 02:44

コメント有り難うございました。 500エラーでした。 ご追記いただきました方法でもやはりエラーとなってしまいました。 ご再考有り難うございました!
guest

0

ベストアンサー

PHP

1do_shortcode( '[catlist name=”'.$product_id.'” ]' ) ;

的な対応ではだめでしょうか?

投稿2016/12/15 02:15

yambejp

総合スコア114779

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

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

kumadon

2016/12/15 02:45

コメント有り難うございます! お教え頂きました方法で無事機能実現出来ました! 有り難うございました!
guest

0

質問文の「"」が全角なので、それを一度確認してみてください。

PHP

1echo( do_shortcode( '[catlist name=”$product_id” ]' ) ); 2// ↑全角になっていませんか?

連結するとか。

PHP

1<?php $product_id = SCF::get( 'aaa' ); 2echo do_shortcode( '[catlist name="'.$product_id.'"]' ); ?>

投稿2016/12/15 02:20

kei344

総合スコア69400

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

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

kumadon

2016/12/15 02:46

コメント有り難うございました。 ご指摘の全角にはなておりませんでしたが、後述の連結で無事実現出来ました。 有り難うございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問