Definir opções da tela do administrador padrão e ordem da caixa de metabox
28
Estou desesperadamente procurando alguma maneira (de qualquer maneira) de definir as "opções de tela" padrão e a ordem metabox através do arquivo functions.php. alguém tem alguma ajuda que possa fornecer aqui?
Atualização de 2014: para quem só precisa reordenar as meta boxes, consulte a resposta de Nabil abaixo .
Rinogo
Respostas:
23
Definindo a ordem das meta boxes nas páginas de pós-edição
Você precisará remover as caixas de meta e adicioná-las novamente na ordem que desejar.
Para desativar as meta boxes: (personalize de acordo com suas necessidades, consulte o código da metabox no código html para saber qual nome você deve usar como primeiro parâmetro das funções)
function my_remove_meta_boxes(){
remove_meta_box('postcustom','post','core');
remove_meta_box('commentsdiv','post','core');...}
add_action('admin_menu','my_remove_meta_boxes');
Após removê-los, você pode usar a função add_meta_box para adicioná-los em novas posições: http://codex.wordpress.org/Function_Reference/add_meta_box . A ordem das meta boxes depende da ordem em que você chama a função add_meta_box. Por exemplo: com o seguinte snippet de código, a meta-caixa de comentários estará antes da meta-caixa de campos personalizados.
Desculpe, talvez eu não tenha me explicado corretamente. Eu estava me referindo às caixas de meta na página de edição de postagens na área de administração, além de definir o número padrão de postagens a serem exibidas na página da lista de postagens de administrador.
NetConstructor.com
1
então tecnicamente isso não é uma pergunta, são realmente 2 perguntas?
Tom J Nowell
Eu modifiquei minha resposta. Deixe-me saber se você precisar de mais detalhes.
sorich87
@ sorich87 obrigado pela sua resposta, no entanto, pelo que me lembro, não havia como especificar a ordem exata de cada metabox ou havia? Talvez eu deva ser um pouco mais específico. Basicamente, estou procurando vários trechos de código que permitem predefinir várias opções para todos os usuários sem precisar fazer login em cada conta. Exemplos: definindo a ordem exata das meta boxes nas páginas de pós-edição, definindo o título de colunas que aparece na página da lista de postagens, definindo os resultados padrão a serem mostrados na página da lista de postagens ... coisas assim. Desde já, obrigado.
NetConstructor.com
Eu modifiquei minha resposta.
sorich87
9
No exemplo a seguir, substitua {CPT}com o nome do tipo de post, como post, page, book, event, imaginary, foobar... Então se você tem um tipo de pós chamado event, você precisa adicionar um filtro para get_user_option_meta-box-order_event.
add_filter('get_user_option_meta-box-order_{CPT}','metabox_order');function metabox_order( $order ){return array('normal'=> join(",",
array(// vvv Arrange here as you desire'customdiv-{CPT}','authordiv','slugdiv',)),);}
Notas:
Junto com normal, você também pode ter sideeadvanced
Os valores são IDs div separados por vírgula, você pode ver o código-fonte da página ou pode adivinhar
Qualquer metabox existente não está incluída no seu pedido personalizado será adicionada automaticamente no final da sua lista.
Fiquei um pouco confuso com a {CPT}nomenclatura; para esclarecer, se você tiver um tipo de postagem nomeado event, precisará adicionar um filtro para get_user_option_meta-box-order_event.
Respostas:
Definindo a ordem das meta boxes nas páginas de pós-edição
Você precisará remover as caixas de meta e adicioná-las novamente na ordem que desejar.
Para desativar as meta boxes: (personalize de acordo com suas necessidades, consulte o código da metabox no código html para saber qual nome você deve usar como primeiro parâmetro das funções)
Após removê-los, você pode usar a função add_meta_box para adicioná-los em novas posições: http://codex.wordpress.org/Function_Reference/add_meta_box . A ordem das meta boxes depende da ordem em que você chama a função add_meta_box. Por exemplo: com o seguinte snippet de código, a meta-caixa de comentários estará antes da meta-caixa de campos personalizados.
Você pode consultar o arquivo wp-admin / edit-form-advanced.php
Definir qual título das colunas aparece na página da lista de postagens
Você precisa usar o filtro gerenciar _ {$ post_type} _posts_columns. Por exemplo: o seguinte trecho removerá a coluna de comentários.
Definindo os resultados padrão a serem mostrados na página da lista de postagens
Use os filtros 'edit _ {$ post_type} _per_page' e 'edit_posts_per_page'.
Para segmentar um tipo de postagem específico:
use,
add_filter( 'edit_{post type}_per_page', 'my_edit_post_per_page' );
por exemplo,add_filter( 'edit_post_per_page', 'my_edit_post_per_page' );
para postagens,add_filter( 'edit_page_per_page', 'my_edit_post_per_page' );
para páginas.ou use uma condição dentro de sua função. por exemplo:
função my_edit_post_per_page ($ per_page, $ post_type) {
fonte
No exemplo a seguir, substitua
{CPT}
com o nome do tipo de post, comopost
,page
,book
,event
,imaginary
,foobar
... Então se você tem um tipo de pós chamadoevent
, você precisa adicionar um filtro paraget_user_option_meta-box-order_event
.Notas:
normal
, você também pode terside
eadvanced
fonte
{CPT}
nomenclatura; para esclarecer, se você tiver um tipo de postagem nomeadoevent
, precisará adicionar um filtro paraget_user_option_meta-box-order_event
.