WordPress エディターに LibreOffice Calc の表を貼り付け

前回、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 タグ) が削除されます。

最後に

手作業で削除する手間をなくすことができます。ぜひ参考にしていただければと思います。

コメントを残す

メールアドレスが公開されることはありません。

日本語でコメントを入力してください。(スパム対策)