- 締切済み
ワードプレスでショートコード内にphp
ワードプレスのショートコード内で書きphpを書いたところ 動作しないようでした。 <a href="http://●●●=<?php echo get_the_title();?>"> ショートコード内では echoなどは使えないでしょうか? 表示はそのまま[ショートコード名]で記事内に貼っています。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- shimix
- ベストアンサー率54% (865/1590)
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)
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で返す)。
- muuming2001
- ベストアンサー率23% (202/847)
PHPの設定ではないかな? short_open_tag http://php.net/manual/ja/ini.core.php#ini.short-open-tag <?PHP なら動くかも?
補足
アドバイスありがとぅございます。 htmlには[code]だけ記載しています。 <a href="http://●●●=<?php return get_the_title();?>"> だけではならないんですね。 html部分の調整が必要なのか・・・・