Thirdwind
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: ショートコード内に変数を展開したい。[Easy Timer]フォーラム: 使い方全般
返信が含まれるトピック: ショートコード内に変数を展開したい。[Easy Timer]整理しますが最初の投稿に書いてある通り、
[countdown date=2013/01/01-00:00] 予定時間まであと [mtimer] [after]予定時間になりました[/countdown]
このショートコードの予定時間を投稿ごとに取得して変数に入れて実行したいのです。
ターゲットとなる予定時間までカウントダウンして予定時間になったら文章を表示する。ページを読み込むたびにカウントダウンが最初から始まるのは困りますので、予定時間を投稿ごとに設定するためにプラグイン「カスタムテンプレートフィールド」を利用
予定時間の時と分を取得、(現在は日付を超えた場合を考えて予定日付も取得)
php分はプラグイン「カスタムテンプレートフィールド」のShortcode Formatに入れて各投稿ではそれを呼び出すショートコードで表示させています。
ショートコードが入れ子になっているのが問題なのでしょうか?
だからechoだけでショートコードが実行されてしまうのかもしれません。
現状ではechoで始める事によってショートコードが機能しているので私自身はOKなのですがどうも気持ちが悪いので、、、。
しつこいですが、変数の取得はうまくいっています。
ショートコードに変数をセットすると予定時間が過ぎた動作をします。
変数の取得、代入、結合を事前にechoで確認しています。
そのechoされた変数をショートコードに数字で入れると機能しています。
ショートコード開始タグを echo のみでdo_shortcodeを入れないと機能しています。フォーラム: 使い方全般
返信が含まれるトピック: ショートコード内に変数を展開したい。[Easy Timer]日付の部分は運用の問題で、ショートコードが実行されないこととあまり関係ないと思い書き込みませんでしたが、現在は予定時間には予定日付と予定時刻を取得するように変更しています。
書き込み不足でしたら申し訳ないです。
フォーラム: 使い方全般
返信が含まれるトピック: ショートコード内に変数を展開したい。[Easy Timer]何度もありがとうございます。
今回のコードのようにechoでショートコードを始めるとショートコードが表示されずに実行されて機能してしまいます。変数は展開されているという事です。
私自身も変数が展開されているかを表示させようとしてショートコードが実行されてしまう事に気づきました。前にも書きましたがこういう使い方はOKなのでしょうか?
問題ないならこれで私の方は解決なんです(^▽^;)do_shortcodeを入れると予定時間になっていないのになっているように動いてしまいます。変数は展開されているのかもしれませんが機能しないです。
変数部分を実数に直すと機能するので変数展開の問題、括弧やクォーテーションのくくり方かなぁ?と勝手に思っていました。クッキーはfirst-visit-[投稿またはページID]を見つけられなかったので同一ドメインのクッキーを削除してテストしました。
こんな質問にも暖かく返信いただき改めて感謝いたします。
正直こんなにはやく活発に返信を頂けるなんて思っていませんでした。
wordpressもphpもまだまだ勉強中ですので、勘違いや失礼があるかもしれませんがよろしくお願いいたします。フォーラム: 使い方全般
返信が含まれるトピック: ショートコード内に変数を展開したい。[Easy Timer]返信ありがとうございます。
試してみましたがやはりショートコード開始タグ内に変数が展開できていないようで機能しません。
変数を実数にすれば機能しています。私の方法でもすべて変数の取得や代入結合等はうまくいっていますので、最後のショートコード内に展開する部分の問題だと素人ながら推測しています。
引き続きご指導頂ければと思います。
必要な情報が書かれていない等ございましたらご指摘ください。よろしくお願いします。
フォーラム: 使い方全般
返信が含まれるトピック: ショートコード内に変数を展開したい。[Easy Timer]根本的な解決になっていないような気がしますが、以下のようにコードを書くと機能しました。
$setshortcode = "[countdown date=".$settime."]";//ショートコードの開始タグを変数に代入 echo $setshortcode; echo do_shortcode('待時間[mtimer][after] 予定時間です[/countdown]');//ショートコードのオプション終了タグを記入
こんなんで大丈夫なんでしょうか?(^▽^;)
気になるのはショートコード開始タグをdo_shortcodeで始めてないところ。
そもそもこういう使い方はOKなんでしょうか?フォーラム: 使い方全般
返信が含まれるトピック: ショートコード内に変数を展開したい。[Easy Timer]フォーラム: 使い方全般
返信が含まれるトピック: ショートコード内に変数を展開したい。[Easy Timer]ちなみに最後の行を
echo do_shortcode('[countdown date={$settime}]'.$text_to_shortcode_1.'[mtimer]'.'[after]'.$text_to_shortcode_2.'[/countdown]');
としても駄目でした。
echo do_shortcode('[countdown date=2013/01/01-00:00]'.$text_to_shortcode_1.'[mtimer]'.'[after]'.$text_to_shortcode_2.'[/countdown]');
これだと動くんですが…。