PS Disable Auto Formattingが効かないエラーの修復方法!プラグイン改造でWordPressアップデート後も使える裏技!
WordPressのエディタ機能は非常に優秀ですが、
「ビジュアルエディタ」と「テキストエディタ」の切り替え時に改行コードが消えてしまうこともありますよね。
もともとのWordPressの仕様でエディタ切り替え時にpタグとbrタブを付けたり排除したりする動作をしますが、標準機能だと環境によってはページレイアウト崩れの原因になっていまします。
そこで「PS Disable Auto Formatting」というプラグインを導入して、
自動成形機能を取り入れることで、エディタ切り替え時の不具合を解消している人も多いでしょう。
WordPressアップデート後ビジュアルエディタが効かないエラー
WordPressのセキュリティーを向上させるためにアップデートによるバージョンアップはかなり重要です。
ところが、WordPressを最新版にインストールした後、
「ビジュアルエディタが効かない」などのエラーをよく耳にします。
私も先日、久々にWordPressの更新をかけたら、「テキストエディタ」から「ビジュアルエディタ」に切り替わらなくなり焦りました。
原因を探るとWordPressの更新により仕様が変わり、
「PS Disable Auto Formatting」との互換性が悪くなったことでエラーが出ているようです。
WordPress 4.3でビジュアルエディタに変更できないエラーの原因!アップデート後の不具合対応と解決方法!
こちらの記事の手順の通り、不具合の出ている「PS Disable Auto Formatting」を停止して、
このプラグインと同様の機能のある「TinyMCE Advanced」を利用して記事の自動成形を行なうようにしました。
エディタ切り替えの不具合はこの方法で完全に解消され嬉しかったのですが、
「PS Disable Auto Formatting」なしにした途端、一部のショートコードでレイアウト崩れが発生しました。
PS Disable Auto Formattingを停止したらショートコードでレイアウト崩れ
画像などを横並びで配置できる「WP Canvas – Shortcodes」というプラグインを愛用しています。
ところが「PS Disable Auto Formatting」を停止すると、
このプラグインで利用しているショートコードの周りがpタグで囲まれ、1行無駄な改行発生し、レイアウトが崩れてしまいます。
実は「PS Disable Auto Formatting」はエディタ上の改行コードの制御だけでなく、
ウェブページ上に記事の文字データを出力する際に改行コードを調整する機能もあったようです。
「TinyMCE Advanced」ではもちろんそんな機能はありませんので、
無駄に挿入されているpタグが除去されずに、そのまま表示されてしまいます。
「PS Disable Auto Formatting」なしでは生きていけないと思い、
プラグインを改造して、不具合を解消していきたいと思います。
PS Disable Auto Formattingを改造して自動成形機能を使用可能にする裏技
PS Disable Auto Formattingの更新は4ヶ月前から止まっており、
最新版がリリースされる可能性は低く、今回の不具合を対応してくれるかは絶望的でしょう。
その為このプラグインの使用を断念した人も多いかもしれません。
私はどうしてもPS Disable Auto Formattingを利用したかったのでプラグイン改造を行ないました。
まず以下のポイントを注目して下さい。
- エディタ切り替え時の自動成形
- ページ出力(閲覧)時の自動成形
PS Disable Auto Formattingはこの2つの機能が実装されており、
それぞれ別の処理で動いていることになります。
今回不具合が起きているのは1番目の「エディタ切り替え時の自動成形」で、
この機能はTinyMCE Advancedで代用できるので、停止してしまって構わないでしょう。
されレイアウト崩れの原因は2番目の「ページ出力(閲覧)時の自動成形」で、この機能だけが動くようにプラグインを改造する必要がありそうです。
ちなみにPS Disable Auto Formattingのプラグインファイルは結構シンプルで、
PS Disable Auto Formattingの実装ファイル(php)とエディタ切り替え制御用のスクリプト、言語ファイルの3つです。
つまりスクリプトの埋め込み処理を除去すれば動作することになります。
デバッグ処理をしながら、試したところ、以下の部分をコメントアウトすることで解決します。
編集するファイルはps_disable_auto_formatting.phpになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function __construct() { global $wp_version; if ( version_compare( $wp_version, '2.5', '>=' ) ) { add_action( 'init' , array( $this, 'disable_auto_formatting_init' ) ); add_action( 'admin_menu', array( $this, 'add_disable_formatting_setting_page') ); //add_filter( 'print_scripts_array', array( $this, 'rewrite_default_script' ) ); add_filter( 'wp_insert_post_data', array( $this, 'formatting_quickpress_post' ) ); add_action( 'media_buttons', array( $this, 'check_edit_mode_and_add_richedit_pre' ), 9 ); add_action( 'media_buttons', array( $this, 'delete_filtering_wp_richedit_pre' ) ); } else { add_action('admin_notices' , array( $this, 'version_too_old' ) ); } } |
constructメソッド内のprint_scripts_arrayのadd_filterをコメントアウトするだけで、
エディタ切り替え時のスクリプト処理が動作しなくなります。
あとはTinyMCE Advancedの機能と併用してあげることで、両方の機能を利用することができます。
裏技というほどではありませんが、どうしてもPS Disable Auto Formattingの利用を続けたい人の為の応急処置でした。
最新記事 by よっき (全て見る)
- 「圧着」と「圧接」の違い!コネクタを使った効率的な配線作業! - 2019年10月26日
- 夏の暑さ対策は大丈夫?冷却性能抜群のおすすめCPUクーラー!メモリに干渉しない最強の商品を紹介! - 2018年5月1日
- 自作PC弐号機のケースを換装!SilverStone製のミニタワーで冷却性とかっこよさを追求! - 2018年3月11日
スポンサードリンク