application/xhtml+xml に対応していない UA には HTML を出力しようと今頑張ってます。
ほとんどデバッグ用の機能ですけど、「 ?type=html 」というようにパラメータをつけても HTML で吐くようになります。
あとは、空要素を閉じないようにすれば完了なはずですが、その空要素を閉じないようにするにはどうすればいいのかな...と。
たとえば <link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" /> みたいな。
$emptyElementTag に空要素タグ( HTML なら '>' 、 XHTML は '/>' )を格納しておいて、<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>"<?php echo $emptyElementTag; ?>とか。これはキモい。冗長。
じゃあ、HTML だったら空要素タグを変換する関数、 toHTML とか作っておいて、 <?php echo toHTML( '<link rel="pingback" href="'. get_bloginfo('pingback_url'). '" />' ); ?> とか。うーん、さっきのよりましだけれど、いちいち PHP の文字列形式に書き直さないといけないところがやだ。
PHP で出力をフックさせることって出来ないのかな。 toHTMLStart 関数で以降の出力を toHTML 関数に通す。 toHTMLEnd 関数でフックを終了。みたいな。
どうやら、 PHP には出力制御関数というのがあるらしい。探していたのはこれかな。