• 締切済み

ワードプレスでショートコード内にphp

ワードプレスのショートコード内で書きphpを書いたところ 動作しないようでした。 <a href="http://●●●=<?php echo get_the_title();?>"> ショートコード内では echoなどは使えないでしょうか? 表示はそのまま[ショートコード名]で記事内に貼っています。

みんなの回答

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

ANo.2 です。 ><a href="http://●●●=<?php return get_the_title();?>"> > >だけではならないんですね。 そもそも関数なので基本的にphpスクリプトを書いているハズですよね。htmlはどのように書いているんでしょうか?まさかfunctions.phpで function ショートコード名() { ?> <a href="http://●●●=<?php echo get_the_title();?>"> <?php } などと書いているわけではないと思うんですが・・・ 表示したい内容を戻り値として返す必要がありますから、 function ショートコード名() { return '<a href="http://●●●=' . get_the_title() . '">'; }

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

functions.phpにショートコード名の関数を書いているんですよね?ショートコードでは「表示させたい文字列をreturnで返す」ことになります。関数内でechoすることはあり得ません。 https://wpdocs.osdn.jp/%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%B3%E3%83%BC%E3%83%89_API --------- 引用ここから ショートコードハンドラー関数の返り値はショートコードマクロの代わりに投稿コンテンツの出力へ挿入されます。 echo ではなく return を使うようにしてください。echo されたものはすべてブラウザへ出力されますが、ページの適切な箇所に表示されません。 --------- 引用ここまで html部分をどう書いているのかわかりませんが、たとえば文字列リテラルで書いている途中なら $str = "~~<a href="http://●●●=" . get_the_title() . ">~~" のような書き方になると思います(この$strをreturnで返す)。

bigfeet7
質問者

補足

アドバイスありがとぅございます。 htmlには[code]だけ記載しています。 <a href="http://●●●=<?php return get_the_title();?>"> だけではならないんですね。 html部分の調整が必要なのか・・・・

回答No.1

PHPの設定ではないかな? short_open_tag http://php.net/manual/ja/ini.core.php#ini.short-open-tag <?PHP なら動くかも?

関連するQ&A

専門家に質問してみよう