WordPressのショートコードってHTMLタグの属性値としては使用出来ない。

WordPressのショートコードってHTMLタグの属性値としては使用出来ない。



WordPressのテーマを作成しておりまして、そこでアイキャッチの画像パスを取得するショートコードを作成しました。

こんな感じです。

function sc_featuredimage_path() {
    if (has_post_thumbnail() ){
        return get_the_post_thumbnail_url( get_the_ID(), 'full' );
    }
}
add_shortcode( 'sc_featuredimage', 'sc_featuredimage_path' );

その上で、記事本文の中で

<div class="image-cover" style="background-image:url(&#91;sc_featuredimage&#93;)">・・・</div>

と記述すれば、指定した要素の背景画像としてアイキャッチ画像を表示出来るのではなかろうかと思ったのですが・・・

ショートコードが出力されない!

想定では

<div class="image-cover" style="background-image:url(***/hogehoge.jpg)">・・・</div>

となる予定でしたが、

<div class="image-cover" style="background-image:url(&#91;sc_featuredimage&#93;)">・・・</div>

のまま表示されてしまいます。

これはおかしいと原因を探ってみると・・・

shortcodes are not allowed in html attributes, shortcodes are not programing language, they are place holders to proper html content.(ショートコードはhtml属性では許可されず、ショートコードはプログラミング言語ではなく、適切なhtmlコンテンツのプレースホルダーです。)

How do I use Shortcodes inside of HTML tags?
参考
How do I use Shortcodes inside of HTML tags?

I tried to include shortcodes with a parameter in raw html output, like shown below: <a href="https://example.com/folder/edit.php?action=someaction&id=[foocode parameter='value']&editto...

How do I use Shortcodes inside of HTML tags? WordPress Development Stack Exchange

セキュリティ上禁止されているんですって。

属性値を持たないショートコードなら使える、という事例の紹介もありましたが、こちらで検証してみましたが同様に使えませんでした。

さて、困ったので背景画像に設定する、というショートコードを別途作成しなければならなくなりました。

残念。

今日はここまで
WordPressのショートコードってHTMLタグの属性値としては使用出来ない。

WordPressのショートコードってHTMLタグの属性値としては使用出来ない。


開発

WordPressのテーマを作成しておりまして、そこでアイキャッチの画像パスを取得するショートコードを作成しました。 こんな感じです。 function sc_featuredimage_path() { if (has…


関連する記事



こちらはいかが?


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*(必須)

*(必須・表示されません)