WordPress data-original内のショートコードがそのまま表示されてしまう
ショートコードが反映しない原因がわからず放置すること1年。。
function.phpに以下の記述を追加するとテンプレートディレクトリパスを呼び出すのに[template]というコードで表示させることが可能になります。(投稿ページや固定ページの管理画面に記述する場合)
function shortcode_tp() { return get_template_directory_uri(); } add_shortcode('template', 'shortcode_tp');
しかし以下のような場合(主にlightboxを使用している場合)
<li><a href="[template]/images/photo/001.jpg" data-lightbox="group"><img data-original="[template]/images/photo/s001.jpg" src="[template]/images/dummy.jpg" alt=""></a></li>
hrefやsrcのショートコード[template]は反映するのだが、data-originalのショートコード[template]は変換されずそのまま[template]と表示されてしまう。
data-original属性がショートコードに対応していないのが原因らしいので、function.phpにさらに記述を追加します。
add_filter( 'wp_kses_allowed_html', 'my_wp_kses_allowed_html', 10, 2 ); function my_wp_kses_allowed_html( $tags, $context ) { $tags['img']['data-original'] = true; return $tags; }
これでdata-original属性の場合でもショートコードを使うことが可能になりました。
2018年05月