Ktai Style でショートコードのエンコード
-
お世話になっております。
WordPress 2.9.1 で Ktai Style のバージョン1.81を使用中です。Ktai Style は欲しい機能がほとんど揃っていて、本当に秀逸なソフトだと思います。
これからもよろしくお願いします。さて、表題の件ですが、
ショートコードを使ってアフィリエイトなどのトラッキングコードを埋め込もうと考えたのですが、
ひとつ問題が発生しました。ショートコードで吐き出したimgファイルのsrc内、クエリ部分の & が & に変換されてしまうのです。
アフィリエイトによっては & では正確にトラッキングできないこともあるので困りました。フックを追ってみたところ、
the_content() ではショートコードのままでしたが、
raw_content/ktai_style.php ではショートコードが変換され、&も変換されていました。それで、ソースを追ってみたところ、
shrinkage.php 136行目
add_filter(‘the_content’, array($this, ‘shrink_content’), 90);
さらに追って、shrinkage.php 727行目~
public function shrink_content($content) {
if (! $this->skip_shrink_content) {
$content = preg_replace(‘!<del[^>]*>.*?</del>!s’, ”, $content);
$content = $this->strip_styles_scripts($content);
$content = $this->parent->filter_tags($content);
$content = $this->convert_links($content);
$content = $this->convert_images($content);
}
return $content;
}ここの $this->parent->filter_tags で変換されていることが分かりましたが、
フックもなにもないので、仕方なく以下の方法で対処しました。// do_shortcode の順番を遅くすることで対処(いったん削除して再登録) remove_filter( 'the_content', 'do_shortcode',11 ); add_filter('the_content','do_shortcode',100);すでに解決している問題ではあるのですが、
あまりいい解決策ではない気がします。他にいい解決方法などあるでしょうか?
また、できれば勉強のために & を &amp; に変換する理由を
ご教授いただければと思います。よろしくお願いいたします。
トピック「Ktai Style でショートコードのエンコード」には新たに返信することはできません。