カスタム投稿タイプ:エディターを削除する方法(-metaボックス)


9

私はポストエディター(ビジュアル+ html)を取り除く方法を質問しています。投稿タイプのサポートを登録しないように試みましたが、引き続き表示されます(登録解除は、投稿編集画面の他のすべてのデフォルトメタボックスで正常に機能します)。私はそれもremove_meta_boxで登録解除しようとしましたが、これも機能しませんでした(タイトルメタボックス以外のすべてで機能します)。多分私は何かが欠けています。すでにウェブを検索していて、何も見つかりませんでした。誰かが教えてくれるといいのですが。ありがとう!

Ps。タイトルフィールドを無効にするための解決策も嬉しいですが、それは2番目です(投稿タイプの作品に登録しない)。

(Wordpressバージョンは3.0.4です。)

回答:


16

投稿タイプの宣言で 'supports'に空の配列を与えると、編集投稿ページの他のすべてのデフォルトボックスとともに、エディターとタイトルが削除されます。

$supports = array ('');
    $args = array(
      'label' => 'people',
      'supports' => $supports,
      'hierarchical' => false,
      'public' => true,
      'rewrite' => true
         );

    register_post_type( 'people', $args);

結果: 代替テキスト トラックバック、コメントなど、表示する要素を「サポート」に入力します。または、投稿を保存できるボックスを除いて、空白のままにしてページを空のままにします。階層的な分類のメタボックスも削除したい場合は、必ずここにアクセスしてください。


今までありがとう。私の問題は、すべてを空に設定できないことです。カスタム投稿タイプ、カスタム分類法、タグの生成を高速化するために、3つのクラスを作成しました。彼らはデフォルトを得た。カスタム投稿タイプの場合、それは単にすべてです。しかし、私は特定の投稿タイプのいくつかのボックスを登録解除する必要があります。また、エディタボックスの登録を解除する必要もあります。
カイザー、2013年

すべてを空に設定するとはどういう意味ですか?エディターを削除する場合は、クラスで投稿タイプを作成するときに、「editor」を「supports」配列に入力しないでください。
マニーフルールモンド、2011年

2
@kaiserそれがあなた自身のクラスである場合、問題は何ですか?彼らはそれを処理してください..?
Rarst

@Rarst:配列から投稿タイプと分類法を登録し、$ labelsと$ args(デフォルトと特定)のフィルターを提供することは、次のことを行う唯一のベースです。用語クラスは、配列から更新および割り当てを行う削除不可能な用語のみを生成します。メタボックスはクラスがなくても簡単で、統合する意味がありません。クラスは、時間を節約し、クライアントがシステムに必要な用語を削除しないようにするためだけにあります。しかし見てくれてありがとう。あなたの助けは(再び)高く評価されています:)
kaiser

2
@kaiserでは、supportsフィルタを使用して空の配列を設定する際の問題は何ですか?
Rarst

15

supports引数に何も渡さない場合は、デフォルト設定の'title', 'editor'が使用されます(「何もない」はempty())です。

ただし、投稿タイプをに登録した後で何かのサポートを追加できるのと同じようにadd_post_type_support( $post_type, $feature )、を呼び出すことで何かのサポートを削除できますremove_post_type_support( $post_type, $feature )。したがって、投稿タイプの登録後にこれを呼び出すと、エディターが削除されます。

remove_post_type_support( 'my_post_type', 'editor' );

これらの関数はグローバル$_wp_post_type_features変数を操作するだけですが、自分でいじるよりもAPI関数を使用する方が常に優れています。


解決!私はいつもこれが元を削除するだけだと思っていました。子テーマを介したサムネイルまたはnav_menu。どうもありがとう!
カイザー、2013年

1
痛い、私はそれを逃した。空の配列を渡すと空と評価されます。空の値を渡すと常に混乱が生じ、直感に反するため、何もではなくデフォルトのように扱われます。:(
Rarst

1
@Rarst:ダミーの機能名を渡した場合にも機能すると思います。これは単なる配列キーなので、ダミーデータが挿入されても問題ありません。私は一度使用0.1の代わりに、0パラメータに渡すためにempty()チェックを。
Jan Fabry

1
@Jan Fabryうん、それは私が私を踏んだのは初めてではないempty()。上記のように-非常に直感に反しています。
Rarst

うーん。それはキーでは機能しないので、後でアップグレードするときに「ダミー値」が別の「私のもの」になる可能性があると思います(悪い値を見つけてみてください)。とにかく、お二人に感謝します!:)編集:値がそこにあるだけでなく、キー/値のペアである場合に便利です。例 'support' => array('thumbnail' => true, 'editor' => false);
カイザー、2013年

2

カスタム投稿タイプUIプラグインを使用して、カスタム投稿タイプを作成します。このプラグインを使用すると、高度なオプションでポストエディターを無効にすることができます。

投稿タイプの管理->詳細オプションの表示

ここにプラグインへのリンクがあります:http : //wordpress.org/extend/plugins/custom-post-type-ui/

PS-タイトルフィールドを無効にすることもできます:)


上記のように、3つのクラスを作成したため、プラグインに切り替えることができません。とにかく、プラグインの使用を検討するつもりはありません。プラグインは(imo)開発用であり、コメントフォームなどの簡単に交換可能なものであり、投稿タイプや分類法などのコアなものではありません。とにかくありがとう!
カイザー、2013年

1
実際、プラグインは、カスタム投稿タイプを含め、Wordpressのほとんどすべてをカスタマイズできます。現在、多数の投稿タイプ、それらのメタボックス、およびさまざまなカスタムフィールドを作成するプラグインを作成しています。
マニーフルールモンド、2011年

@マニーフルールモンド:あなたが共有するつもりなら、plsは私にリンクをドロップします。私のクラスでも高度なメタボックスのルーチンを作成することを考えています。
カイザー、2013年

0

register_post_type();を確認してくださいコーデックスで。[ 引数]セクションで、[ サポート]が表示されるまでスクロールします

3.5以降では、ブールfalseを配列の代わりに値として渡して、デフォルト(タイトルとエディター)の動作を防ぐことができます

または、次の例のように、必要な値を追加して、カスタム投稿タイプを希望どおりにカスタマイズします。

'supports' => array(
    'title',
    'author',
    'thumbnail',
    'post-formats'
),

私の配列でサポートされているこれらのオプションは、私のワードプレスバックエンドに表示されます。


-2

管理者編集ページのスタイルを設定して、エディターなどの一部の要素を非表示にすることもできます。

function custom_colors() {
   echo '<style type="text/css">
            body.post-type-events #postdivrich {
            display: none;
            }
         </style>';
}

add_action('admin_head', 'custom_colors');

回答いただきありがとうございます。これにより、(a)Dependencies APIに登録されていないため、取り外し不可能になり、(b)ブラウザー開発者ツールの使用方法を知っている人がアクセスできるようになります。
カイザー2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.