前回、Excel の表を整形 (width 属性の削除) して貼り付ける方法を紹介しました。今回は、LibreOffice Calc の表を整形して貼り付ける方法を紹介します。
WordPress のエディタ (TinyMCE) に、LibreOffice Calc の表をクリップボード経由でコピー&ペーストすると、表形式のまま貼り付けされます。
テーブル (table) タグで貼り付けされるのですが、セルの幅や文字の色、文字のサイズ、フォントファミリー、背景色などの属性が付加されています。
テーブルをスタイルシートでデザインしている場合など、付加された属性が妨げになる場合があります。
手作業で削除するのは非常に手間のかかる作業です。
コード
そこで、貼り付け時に自動で余分な属性を削除する方法を紹介します。
下記のコードをテーマの functions.php に追記します。
function my_tiny_mce_before_init( $init ) {
$init['paste_preprocess'] = <<<SCRIPT
function(plugin, args) {
var content = jQuery('<div>' + args.content + '</div>');
// colgroup タグを削除
content.find('table colgroup').remove();
// td の属性をすべて削除
content.find('table td').contents().unwrap().wrap('<td></td>');
// font タグ (貼り付け時に span に変換される) を削除。
content.find('table td font').contents().unwrap();
args.content = content.html();
}
SCRIPT;
return $init;
}
add_filter( 'tiny_mce_before_init','my_tiny_mce_before_init' );
これで、貼り付け時に余分な属性 (colgroup タグ、td タグの属性、span タグ) が削除されます。
最後に
手作業で削除する手間をなくすことができます。ぜひ参考にしていただければと思います。