WordPress+Jetpackパブリサイズ共有のカスタマイズ

投稿日:

 WordPressとFacebookを併用するとき、有名プラグイン「Jetpack」の「バブリサイズ共有」機能を使うのは、常道中の常道である。

 私も愛用している。

 しかし、FBにクロスポストする際、記事の全文が引用されてしまうなど、いろいろと問題も多いことは指摘している人も多い。

 この「全文引用問題」については、「全文引用させないコツ」などを発表している方も多く、ネットに情報はたくさんある。

 ところが、私の場合、「別に全文引用されてもかまわない」のである。ただ、不満点は、「改行をサニタイズしないでほしい」ということなのだ。これをやられると、ホンット、FBのウォールが鬱陶しいものになってしまう。どうせ全文引用するなら、段落などもちゃんと引用してほしいのだ。

 そこで、プラグインのソースコードを覗き見る。

 「jetpack/modules/publicize.php」というのがパブリサイズ共有の機能部分で、その中に次のような個所がある。

public static function sanitize_message( $message ) {
	$message = preg_replace( '@<(script|style)[^>]*?>.*?</\\1>@si', '', $message );
	$message = wp_kses( $message, array() );
	$message = preg_replace('/[\r\n\t ]+/', ' ', $message);
	$message = trim( $message );
	$message = htmlspecialchars_decode( $message, ENT_QUOTES );
	return $message;
}

 赤字の部分で空白とタブ、改行をサニタイズしているようだ。そこでこれをコメントアウトしてみた。

public static function sanitize_message( $message ) {
	$message = preg_replace( '@<(script|style)[^>]*?>.*?</\\1>@si', '', $message );
	$message = wp_kses( $message, array() );
//	$message = preg_replace('/[\r\n\t ]+/', ' ', $message);
	$message = trim( $message );
	$message = htmlspecialchars_decode( $message, ENT_QUOTES );
	return $message;
}

 ところが、試してみてもやっぱり改行がサニタイズされてしまう。

 それに、こうやって対応することには問題がある。ソースコードをフォークしてしまうと、バージョンアップのたびに同じ個所をカスタマイズしなおすことになるのだ。だが、まあ、バージョンアップなんてそんなに頻繁にないし、こんなくらい、「まあいいや」で済んでしまうということもある。

 いずれにしても、これは引き続き要調査、である。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください