“Black Studio TinyMCE Widget”のビジュアルエディターで”Advanced Responsive Video Embedder”が使用できない

“Black Studio TinyMCE Widget”は、Wordpressに”ビジュアルエディター”というWYSIWYGのWidgetを追加してくれる便利なプラグインです。

black-studio-tinymce-widget
Black Studio TinyMCE Widget

また、”Advanced Responsive Video Embedder”は、YouTubeなどの動画をレスポンシブWebデザインにフレキシブルなコンテンツとして差し込んでくれる便利なプラグインです。

advanced-responsive-video-embedder
Advanced Responsive Video Embedder

しかしながら、いつのタイミングか不明ですが(半年前あたりから?)、”Black Studio TinyMCE Widget”の”ビジュアルエディター”のWidget内で、”Advanced Responsive Video Embedder”の“Embed Video”ボタンをクリックしたダイアログが「真っ白」になってしまう不具合が発生するようになっています。

環境:Wordpress 4.0, Black Studio TinyMCE Widget 2.1.2, Advanced Responsive Video Embedder 5.1.0

advanced-responsive-video-embedder-shortcode-creator-empty-dialog
真っ白なダイアログ

原因は、”Wordpress本体” “Black Studio TinyMCE Widget” “Advanced Responsive Video Embedder”のいずれの仕様変更か不明ですが、”Advanced Responsive Video Embedder”のSupportフォーラムで、同様な報告があがっていたのでいつか直ると思い待ってました。

WordPress › Support » Plugins and HacksAdvanced Responsive Video Embedder
Empty ‘Embed Video’ window in Black Studio TinyMCE Widget

しかし、いくら待っても直らないので、筆者の方でFIX方法を発見しましたので、皆様にご案内します。

	/**
	 * Maybe dismiss admin Notice
	 *
	 * @since     4.3.0
	 */
	public function admin_page_has_post_editor() {

		global $pagenow;

		if ( empty ( $pagenow ) ) {

			return false;
		}

		if ( $pagenow == 'widgets.php' ) {
			return true;
		}

		if ( ! in_array( $pagenow, array ( 'post-new.php', 'post.php' ) ) ) {

			return false;
		}

		return post_type_supports( get_current_screen()->post_type, 'editor' );
	}
}

上記のハイライト部分のコードを追加して下さい。

どうやら、上記の $pagenow が ‘widgets.php’ で渡ってきており、ダイヤログのHTMLを出力していないことが原因らしいです。いままではどうやって動いていたかの方が疑問です(実は気のせいで動いていなかった?)。

“Black Studio TinyMCE Widget”側からすると、WordpressコアのWYSIWYGをWidgetにしただけなので、他のプラグインのことはサポートしない(または、後回し)というのも理解できるし、

“Advanced Responsive Video Embedder”側からすると、’post-new.php’ または ‘post.php’  で利用されることを想定したプラグインなので・・・というのも理解できる。

プラグイン同士の調和って難しいですね。

以上、ご参考になりましたら幸いです。

※上記の内容は全て自己責任のもとでご参考ください。