WordPress の記事の中などでリンクを記述する場合、特定のスキームしか書くことができません。たとえば http://
や mailto:
は書くことができますが、git://
や skype:
などと書こうとしても、自動的に削除され、http://
とみなされてしまいます (管理者権限で記事を書いている場合は適用されず、自由に書くことができます。権限が編集者以下の場合です)。
調べてみると、WordPress 3.3 からこの制限は wp-includes/functions.php
の wp_allowed_protocols()
に書かれています。そこを見てみると、スキーム名を追加するには kses_allowed_protocols
というフックを使えばよさそうです。
いま xmpp:
というスキームのリンクを記述したいので、テーマの functions.php
あたりに
function ext_protocols ($protocols) { $protocols[] = 'xmpp'; return $protocols; } add_filter('kses_allowed_protocols', 'ext_protocols');
と書きました。これで記事中にxmpp:mako@pasero.net や xmpp:なんでも談話室@muc.step.im?join などのリンクを記述できるようになりました。