WordPressでカスタム投稿タイプのエディタをアクションフックとCSSで非表示にする
カスタム投稿タイプを作成するプラグイン「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さんありがとうございました!
