Tipos de postagem personalizados: Como se livrar do editor (caixa -meta)

9

Estou questionando como posso me livrar do pós-editor (visual + html). Tentei não registrar o suporte ao tipo de postagem e ele ainda aparece (o cancelamento do registro funciona bem com todas as outras caixas de meta padrão na tela de pós-edição). Também tentei cancelar o registro com remove_meta_box, que também não funcionou (funciona para todo o resto, exceto a meta box do título). Talvez esteja faltando alguma coisa. Já pesquisou na web e não encontrou nada. Espero que alguém possa me dizer. Obrigado!

Ps. Eu ficaria feliz com uma solução para desativar o campo de título também, mas é o segundo (não registrá-lo com o tipo de publicação funciona).

(A versão do Wordpress é 3.0.4.)

kaiser
fonte

Respostas:

16

Dar uma matriz em branco para 'suportes' na declaração do tipo de postagem deve se livrar do editor e do título, juntamente com todas as outras caixas padrão na página de edição da postagem.

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

    register_post_type( 'people', $args);

Resultado: texto alternativo preencha os 'suportes' com os elementos que você deseja exibir, como trackbacks, comentários, etc. Ou deixe em branco para deixar a página vazia, exceto pela caixa que permite salvar suas postagens. Não deixe de visitar aqui se você também deseja se livrar dos metaboxes da taxonomia hierárquica.

Manny Fleurmond
fonte
Obrigado até agora. Meu problema é que não consigo definir tudo para esvaziar. Eu escrevi três classes para acelerar a geração de tipos de postagem personalizados, taxonomias e tags personalizadas. Eles têm padrões. No caso de tipos de postagem personalizados, é simplesmente tudo. Mas preciso cancelar o registro de algumas caixas para tipos de postagem específicos. E para um eu preciso cancelar o registro da caixa do editor também.
Kaiser
Estou interessado no que você quer dizer com definir tudo como vazio? Se você quiser se livrar do editor, simplesmente não o coloque; editor 'na matriz' suportes 'quando criar o tipo de postagem em sua classe.
Manny Fleurmond
2
@ Kaiser, se é a sua própria classe, qual é o problema? Fazê-los lidar com isso ..?
Rarst
@Rarst: É apenas uma base que faz o seguinte: registrar tipos de post e taxonomias de uma matriz e oferecendo um filtro para $ labels e $ args (padrão e específico). A classe de termos gera apenas termos não excluídos que são atualizados e atribuídos a partir de uma matriz. Meta boxes podem ser fáceis sem a classe e não faria sentido para eu integrar. As aulas existem apenas para economizar tempo e impedir que os clientes excluam termos que o sistema precisa. Mas obrigado por olhar. Sua ajuda é muito apreciada (novamente) :)
kaiser
2
@ kaiser, então qual é o problema com a configuração supportsde array vazio via filtro?
Rarst
15

Se você não passar nada para o supportsargumento, serão 'title', 'editor'usadas as configurações padrão de (onde "nada" é qualquer coisa que seja empty()).

No entanto, assim como você pode adicionar suporte a algo depois de registrar o tipo de postagem add_post_type_support( $post_type, $feature ), você pode remover o suporte chamando remove_post_type_support( $post_type, $feature ). Portanto, chamar isso após registrar seu tipo de postagem deve remover o editor:

remove_post_type_support( 'my_post_type', 'editor' );

Essas funções apenas manipulam a $_wp_post_type_featuresvariável global , mas é sempre melhor fazer isso com as funções da API do que mexer nela.

Jan Fabry
fonte
SOLUÇÃO! Eu sempre pensei que isso era apenas para remover ex. miniaturas ou nav_menu por meio de um tema filho. Muito obrigado!
Kaiser
11
Ai, eu senti falta disso. Bom ponto, passar um array vazio será avaliado como vazio ... Passar valores vazios é sempre uma bagunça, é contra-intuitivo, de modo que é tratado como padrão em vez de nada . :(
Rarst
11
@Rarst: Eu acho que também funcionaria se você passasse um nome de recurso fictício. É apenas uma chave de matriz, portanto, não importa se dados fictícios são inseridos. Uma vez0.10 eu usei em vez de um parâmetro para passar na empty()verificação.
Jan Fabry
11
@ Fabry Jan Sim, não é apenas a primeira vez que pisei na empty()minha. Como acima - altamente contra-intuitivo.
Rarst
Hum. Não está funcionando com chaves e, portanto, acho que "valores fictícios" podem se tornar outro "meu" ao atualizar mais tarde (tente encontrar o valor incorreto). Enfim: muito obrigado a vocês dois! :) Editar: seria útil se os valores não estivessem lá, mas são pares chave / valor. Ex. 'support' => array('thumbnail' => true, 'editor' => false);
Kaiser
2

Eu uso o plug-in personalizado da interface do usuário do tipo de postagem para criar tipos de postagem personalizados. Usando este plug-in, você pode desativar o pós-editor nas opções avançadas.

Gerenciar tipo de postagem -> Exibir opções avançadas

Aqui está um link para o plugin: http://wordpress.org/extend/plugins/custom-post-type-ui/

PS - Permite desativar também o campo de título :)

Carson
fonte
Como dito acima, escrevi três classes e, portanto, não posso mudar para um plugin. Quero dizer, eu nem consideraria usar um plugin de qualquer maneira. Os plugins são (imo) para desenvolvimento ou itens intercambiáveis ​​fáceis, como formulários de comentários, e não itens essenciais, como tipos de post ou taxonomias. Obrigado mesmo assim!
Kaiser
11
Na verdade, os plugins são capazes de personalizar praticamente qualquer coisa sobre o Wordpress, incluindo tipos de postagem personalizados. No momento, estou criando um plug-in que cria vários tipos de postagem, seus metaboxes e seus vários campos personalizados.
Manny Fleurmond
@ Manny Fleurmond: Se você vai compartilhar, pls me mande um link. Ainda estou pensando em talvez, talvez escrevendo uma rotina para meta-caixas avançadas em minhas aulas também.
Kaiser
0

Confira register_post_type (); no códice. Na seção Argumentos , role para baixo até ver Suportes .

A partir da versão 3.5, o valor booleano falsepode ser passado como valor, em vez de uma matriz, para evitar o comportamento padrão (título e editor).

Ou personalize seu tipo de postagem personalizado como desejar, adicionando os valores desejados, por exemplo:

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

Essas opções suportadas na minha matriz aparecerão no meu back-end do wordpress.

Gothburz
fonte
-2

Você também pode definir o estilo da página de edição do administrador para ocultar elementos de manutenção, como editor etc.

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

add_action('admin_head', 'custom_colors');
romapad
fonte
Obrigado pela sua resposta, mas isso poderia (a) torná-lo não removível, pois não está registrado na API de dependências e (b) torná-lo acessível para pessoas que sabem usar as ferramentas de desenvolvedor de navegadores.
Kaiser #