いつまで経ってもわからない、WEBってやつは・・・(´・ω・`)

【WordPress】WP3.9にしてTinyMCE Advancedも新しくなったんだが「テキスト」のまま保存すると「ビジュアル」に戻らない件(追記あり)

こんにちわんだーほーげん(/・ω・)/

ゆでです。ちょっと前に3.9βを使ってみて、TinyMCE Advancedらへんがちょっと・・と思ってたのでドキドキしてましたが気づいたら3.9になってて(βがw)WO(゚д゚)W!と思ってたのですが3.9に合わせてTinyMCE Advancedがバージョンアップしてたので対応していてよかった・・・と思いきや、

エディタ画面で「テキスト」状態のまま保存や更新、ページ遷移をすると「ビジュアル」に戻せなくなる

という現象が起きて焦りました(´・ω・`)。

解決はできましたが、、早くプラグインアップデートしないかなぁ(´・ω・`)。。

 起こりえる状況

WP3.9を使用し、かつPS Disable Auto Formatting(1.0.8)を使用すると起こる(´・ω・`)

※PS Disable Auto Formattingは2011-12-13から更新されてないんだよなぁ(´;ω;`)<2014/4/18現在

追記:2014/5/1 4/23日の1.0.9のバージョンからは直ってる(ΦωΦ)♪ありがたや~(ノ´∀`*)

修正方法

こちらにありました!ありがとうございます!フォーラム助かります(ノ´∀`*)

参考 http://ja.forums.wordpress.org/topic/119396

上記より、下記をすれば治りました(`・ω・´)ゞ (※2014/4/18現在:WP3.9、PS Disable Auto Formatting1.0.8)

wp-content/plugins/ps-disable-auto-formatting/js/330/ps_editor.js

上記を開いて、Line 10 (L10~62)の go: function()をまるっと

wp-admin/js/editor.js

のLine 15(L15~115) の go: function()に置き換える

ありがとございます(●´ω`●)w

※ちなみに書き換えるソース(WP3.9)は下記です

	go: function( id, mode ) {
		var t = this, ed, wrap_id, txtarea_el, iframe, editorHeight, toolbarHeight,
			DOM = tinymce.DOM; //DOMUtils outside the editor iframe

		id = id || 'content';
		mode = mode || 'toggle';

		ed = tinymce.get( id );
		wrap_id = 'wp-' + id + '-wrap';
		txtarea_el = DOM.get( id );

		if ( 'toggle' === mode ) {
			if ( ed && ! ed.isHidden() ) {
				mode = 'html';
			} else {
				mode = 'tmce';
			}
		}

		function getToolbarHeight() {
			var node = DOM.select( '.mce-toolbar-grp', ed.getContainer() )[0],
				height = node && node.clientHeight;

			if ( height && height > 10 && height < 200 ) {
				return parseInt( height, 10 );
			}

			return 30;
		}

		if ( 'tmce' === mode || 'tinymce' === mode ) {
			if ( ed && ! ed.isHidden() ) {
				return false;
			}

			if ( typeof( QTags ) !== 'undefined' ) {
				QTags.closeAllTags( id );
			}

			editorHeight = txtarea_el ? parseInt( txtarea_el.style.height, 10 ) : 0;

			if ( tinyMCEPreInit.mceInit[ id ] && tinyMCEPreInit.mceInit[ id ].wpautop ) {
				txtarea_el.value = t.wpautop( txtarea_el.value );
			}

			if ( ed ) {
				ed.show();

				if ( editorHeight ) {
					toolbarHeight = getToolbarHeight();
					editorHeight = editorHeight - toolbarHeight + 14;

					// height cannot be under 50 or over 5000
					if ( editorHeight > 50 && editorHeight < 5000 ) {
						ed.theme.resizeTo( null, editorHeight );
					}
				}
			} else {
				tinymce.init( tinyMCEPreInit.mceInit[id] );
			}

			DOM.removeClass( wrap_id, 'html-active' );
			DOM.addClass( wrap_id, 'tmce-active' );
			setUserSetting( 'editor', 'tinymce' );

		} else if ( 'html' === mode ) {

			if ( ed && ed.isHidden() ) {
				return false;
			}

			if ( ed ) {
				iframe = DOM.get( id + '_ifr' );
				editorHeight = iframe ? parseInt( iframe.style.height, 10 ) : 0;

				if ( editorHeight ) {
					toolbarHeight = getToolbarHeight();
					editorHeight = editorHeight + toolbarHeight - 14;

					// height cannot be under 50 or over 5000
					if ( editorHeight > 50 && editorHeight < 5000 ) {
						txtarea_el.style.height = editorHeight + 'px';
					}
				}

				ed.hide();
			} else {
				// The TinyMCE instance doesn't exist, run the content through 'pre_wpautop()' and show the textarea
				if ( tinyMCEPreInit.mceInit[ id ] && tinyMCEPreInit.mceInit[ id ].wpautop ) {
					txtarea_el.value = t.pre_wpautop( txtarea_el.value );
				}

				DOM.setStyles( txtarea_el, {'display': '', 'visibility': ''} );
			}

			DOM.removeClass( wrap_id, 'tmce-active' );
			DOM.addClass( wrap_id, 'html-active' );
			setUserSetting( 'editor', 'html' );
		}
		return false;
	},

そういえば、AddQuicktagもインストして有効にして、1つも入れないとエディタでリンクらへんでバグがありましたね(ノ´∀`*)エディタ周りはいろいろあるなぁ。てゆーか新しいTinyMCE Advancedが慣れなくて困るww

ついでに

TinyMCE AdvancedのBefore・After

Before (WPも古い(ノ´∀`*)けどw)

wp3_9_tinymce_img05

After (Advancedの設定は適当です(ノ´∀`*))

wp3_9_tinymce_img04