SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【WordPress】Word、Excelからコピー&貼り付けしたい。なるべく見たままで。

問題

WordPressの投稿入力画面に、Word、Excelからコピーして、なるべく見たままで貼り付けをしたい。

フォントや文字色や背景色の指定が消えてしまうんだけど、どうにかならないの?

答え

WordPerssの投稿入力欄はTinyMCEというJavascriptライブラリを利用している。

TinyMCEは設定でいろいろと動作を変えることができるが、WordPressに組み込まれたTinyMCEの設定を書き換えることはできるのか?

WordPressの管理画面のHTMLソースにある、tinyMCEPreInit = {~} の部分が、そのTinyMCEの設定が書かれている部分である。

この部分をうまく書き換えできるフィルターフックがある。tiny_mce_before_init というフィルターフック。

これを利用して、プラグインを自作してみる。

1、プラグインディレクトリに自作プラグイン用のディレクトリを作成
こんな名前でいいかな

wordpress/wp-content/plugins/mce-init
2、自作プラグイン用のディレクトリの中に1つファイルを作成
こんな名前でいいかな

wordpress/wp-content/plugins/mce-init/mce-init.php
3、プラグインのプログラムを書く
<?php
/*
Plugin Name: mce-init
Plugin URI: https://www.softel.co.jp/etc/mce-init/
Author: Softel
Author URI: https://www.softel.co.jp/
*/
function mce_init($init)
{
  //TinyMCEのpasteプラグインの働きを止める
  $init['paste_auto_cleanup_on_paste'] = false;
  return $init;
}
add_filter('tiny_mce_before_init', 'mce_init');

以上!

なお、MicrosoftOfficeから見たままコピー&ペーストできるのはIEを使っている場合。

Firefoxだと、やっぱりフォントの指定などが消えてしまう。

関連するメモ

コメント