WordPressでカスタム投稿タイプのエディタをアクションフックとCSSで非表示にする


wordpress

カスタム投稿タイプを作成するプラグイン「Custom Post Type UI」や、functions.phpでregister_post_typeを使用してeditorのサポートを無効化してしまうと、カスタムフィールドを作成するプラグイン「Custom Field GUI Utility」で「imagefield」を使用している場合画像のアップローダーが開けない・(反応しない)なんてことに陥ることがあります。


Custom Field GUI Utility」では元々エディタで使用されるアップローダーを呼び出してるだけみたいなので、エディタをリムーブしてしまうと、アップローダー自体呼び出せなくなってしまうようです。

そこでアップローダーの機能を損なわずにCSSで投稿時のエディタを非表示にするコードをご紹介します。

(※この問題はCustom Field Gui Utility 3.2.4で解決されました)

確認バージョン

  • WordPress 3.1.4 & Custom Field Gui Utility 3.1.3
    (※メディアアップローダが開かない)
  • WordPress 3.3.1 & Custom Field Gui Utility 3.2.3
    (※アップロードボタンが表示されない)

functions.php

<?php
/*
 * 投稿時のエディタを非表示
 */
add_action( 'admin_print_styles-post.php', 'my_admin_print_styles_post' );
add_action( 'admin_print_styles-post-new.php', 'my_admin_print_styles_post' );
function my_admin_print_styles_post() {
	global $current_screen;

	//投稿タイプが「voice」の場合にCSS出力してエディタ非表示
	if ( 'voice' == $current_screen->post_type ) {
		echo '<style type="text/css">
				#postdivrich { display: none; }
			  </style>';
	}
}

via:(@kzxtremeさん)

functions.phpで上記のコードでエディタを非表示にした場合。
メディアアップローダーが表示されました:)

参考

「カスタムフィールドプラグインの動作を妨げず本文入力欄を非表示」 (via : WordPress Design b)
このブログに書かれてた@kzxtremeさんのコード。

@kzxtremeさん、@bcuresさんありがとうございました!

Related posts: