に投稿 コメントを残す

WordPressのキャプション機能


Warning: Illegal string offset 'link' in /home/toryuu/hansendo.com/public_html/wp-content/plugins/gallery-lightbox-slider/inc/functions/glg-functions.php on line 45

WordPress(MU2.6.5で実験)では記事内に画像を挿入するとき、キャプション欄に設定したテキストがimgタグのaltに指定されます。

 
キャプション入力欄

【※注意、以下の内容は真似をすると危険です。挿入した画像以降の記事内容が削除されてしまう恐れがあります。】

このとき、画像のキャプション欄に特定の禁じられた言葉が指定されていた場合、挿入した画像以降の記事が削除されてしまいます。
画像を挿入した時点では問題はなさそうですが、そのまま投稿を保存もしくは公開してしまうと上記の通りその画像以降の記事が削除されてしまいます。
対処方法は、キャプション欄になにも書かないか画像を挿入後にaltの値を変更するなどがあります。

 
禁じられた言葉を入力
 
ソース表示、投稿を保存するまでは問題ない
 
一旦保存してしまうと問題の部分以下の記事が削除されてしまう

原因は、WordPressのHTMLタグをチェックする機能がうまくutf-8に対応できていないようなそうでないようなところです。
そこで、このHTMLタグをチェックする機能を修正して正常に文字列を判定できるようになる日がいつかくればいいなとおもいながら、そうめんを茹でて晩御飯にしました。 おいしかったです。

晩御飯を食べながらふと、そういう日はいつまでもこないかもしれないとおもったので、ひとまず画像を挿入したときにキャプション表示はされたままでaltの値には何も指定されないよう修正しました。
get_image_tagという関数をadd_filterで再定義するような形にしたんですが、まだまだadd_filterやapply_filtersの挙動を把握しきれてなくて結構苦労します。 この辺の機能を使いこなせればもっと自由にWordPressのカスタマイズができるようになり、週末は別荘でグリルをしながらの立食パーティーを開催できるようにもなるんではないかとおもってみたりします。

 
修正した

ついでに、キャプションのショートコードも再定義して、divとpをspanに変更してみたんですが、後でdisplayにblockを指定したのであんまり意味がなかったです。

ともかく、これでもう恐る恐るキャプションを指定しなくてもよくなり、一安心でココアを淹れました。 おいしかったです。

コメントを残す