Tipi di post personalizzati: come eliminare l'editor (casella -meta)


9

Mi sto chiedendo come posso sbarazzarmi del post-editor (visual + html). Ho provato a non registrare il supporto del tipo di post, e sembra ancora (la cancellazione della registrazione funziona bene con ogni altra meta box predefinita nella schermata di modifica post). Ho anche cercato di annullare la registrazione con remove_meta_box, che non ha funzionato troppo (funziona per tutto il resto tranne la meta box del titolo). Forse mi sto perdendo qualcosa. Ho già cercato sul web e non sono riuscito a trovare nulla. Spero che qualcuno possa dirmelo. Grazie!

Ps. Sarei felice di un sollution per disabilitare anche il campo del titolo, ma questo è il 2 ° (non registrarlo con il tipo di post funziona).

(La versione di Wordpress è 3.0.4.)

Risposte:


17

Dare un array vuoto ai "supporti" nella dichiarazione del tipo di post dovrebbe eliminare l'editor e il titolo, insieme a tutte le altre caselle predefinite nella pagina di modifica dei post.

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

    register_post_type( 'people', $args);

Risultato: testo alternativo popolare i "supporti" con qualsiasi elemento desideri mostrare, come trackback, commenti, ecc. O lascialo vuoto per lasciare vuota la pagina, ad eccezione della casella che ti consente di salvare i tuoi post. Assicurati di visitare qui se vuoi sbarazzarti anche dei metabox della tassonomia gerarchica.


Grazie finora. Il mio problema è che non posso impostare tutto su vuoto. Ho scritto tre classi per accelerare la generazione di tipi di post personalizzati, tassonomie personalizzate e tag. Hanno impostazioni predefinite. Nel caso dei tipi di posta personalizzati è semplicemente tutto. Ma devo annullare la registrazione di alcune caselle per tipi di posta specifici. E per prima cosa devo annullare la registrazione anche nella finestra dell'editor.
Kaiser

Sono interessato a cosa intendi impostando tutto su vuoto? Se vuoi sbarazzarti dell'editor, non inserirli; editor 'nella matrice' supports 'quando crei il tipo di post nella tua classe.
Manny Fleurmond,

2
@kaiser se sono le tue lezioni qual è il problema?
Farli

@Rarst: è solo una base che realizza le seguenti cose: registra i tipi di post e le tassonomie da un array e offre un filtro per $ label e $ args (predefinito e specifico). La classe di termini genera solo termini non eliminabili che si aggiornano e si assegnano da un array. I meta box possono essere facili senza la classe e non avrebbe senso integrarmi. Le lezioni sono lì solo per risparmiare tempo e trattenere i clienti dall'eliminazione dei termini di cui il sistema ha bisogno. Ma grazie per lo sguardo. Il tuo aiuto è molto apprezzato (di nuovo) :)
kaiser

2
@kaiser allora qual è il problema con l'impostazione supportsdi svuotare l'array tramite filtro?
Rarst

15

Se non si passa nulla per l' supportsargomento, vengono utilizzate le impostazioni predefinite di'title', 'editor' (dove "niente" è tutto ciò che è empty()).

Tuttavia, proprio come è possibile aggiungere supporto per qualcosa dopo aver registrato il tipo di post add_post_type_support( $post_type, $feature ), è possibile rimuovere il supporto per qualcosa chiamando remove_post_type_support( $post_type, $feature ). Quindi, chiamare questo dopo aver registrato il tipo di post dovrebbe rimuovere l'editor:

remove_post_type_support( 'my_post_type', 'editor' );

Queste funzioni manipolano semplicemente la $_wp_post_type_featuresvariabile globale , ma è sempre meglio farlo con le funzioni API piuttosto che giocherellare con essa da soli.


Sollution! Ho sempre pensato che questo fosse solo per rimuovere ex. miniature o nav_menu tramite un tema figlio. Molte grazie!
Kaiser

1
Ahi, mi è mancato. Un buon punto, passare un array vuoto valuterà come vuoto ... Passare valori vuoti è sempre un tale casino, è controintuitivo, quindi viene trattato come predefinito invece che niente . :(
Rarst

1
@Rarst: penso che funzionerebbe anche se avessi passato un nome fittizio. È solo una chiave di array, quindi non importa se vengono inseriti dati fittizi. Una volta0.10 ho usato invece che un parametro per passare il empty()controllo.
Jan Fabry,

1
@ Jan Fabry sì, non è la prima volta che ho calpestato il empty()mio. Come sopra - altamente controintuitivo.
Rarst

Hm. Non funziona con le chiavi e quindi penso che i "valori fittizi" potrebbero diventare un altro "mio" durante l'aggiornamento in seguito (prova a trovare il valore errato). Comunque: grazie mille ad entrambi! :) Modifica: sarebbe utile se i valori non fossero presenti, ma sono coppie chiave / valore. Ex. 'support' => array('thumbnail' => true, 'editor' => false);
Kaiser

2

Uso il plug-in dell'interfaccia utente del tipo di post personalizzato per creare tipi di post personalizzati. Usando questo plugin, puoi disabilitare il post-editor sotto le opzioni avanzate.

Gestisci tipo di post -> Visualizza opzioni avanzate

Ecco un link al plugin: http://wordpress.org/extend/plugins/custom-post-type-ui/

PS: ti consente di disabilitare anche il campo del titolo :)


Come detto sopra, ho scritto tre classi e quindi non posso passare a un plugin. Voglio dire, non prenderei nemmeno in considerazione l'utilizzo di un plugin. I plugin sono (imo) per lo sviluppo o cose facilmente intercambiabili come moduli di commento e non elementi fondamentali come tipi di post o tassonomie. Grazie comunque!
Kaiser

1
In realtà i plugin sono in grado di personalizzare praticamente qualsiasi cosa su Wordpress, compresi i tipi di post personalizzati. Sto creando un plugin in questo momento che crea numerosi tipi di post, i loro metabox e i loro vari campi personalizzati.
Manny Fleurmond,

@Manny Fleurmond: se hai intenzione di condividere, mandami un link. Sto ancora pensando di forse, forse di scrivere una routine per meta-box avanzate anche nelle mie lezioni.
Kaiser

0

Dai un'occhiata a register_post_type (); nel codice. Nella sezione Argomenti , scorri verso il basso fino a visualizzare Supporti .

A partire da 3.5, il valore booleano falsepuò essere passato come valore anziché come un array per impedire il comportamento predefinito (titolo ed editor).

Oppure personalizza il tuo tipo di post personalizzato come desideri aggiungendo i valori desiderati, ad esempio:

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

Queste opzioni supportate nel mio array appariranno nel mio backend wordpress.


-2

Puoi anche impostare lo stile per la pagina di modifica dell'amministratore in modo da nascondere elementi sertain, come l'editor, ecc.

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

add_action('admin_head', 'custom_colors');

Grazie per la risposta, ma ciò (a) lo renderebbe non rimovibile in quanto non è registrato con l'API Dipendenze e (b) lo renderebbe accessibile a persone che sanno come utilizzare gli strumenti di sviluppo del browser.
Kaiser,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.