Eu estou querendo saber se existe uma maneira de alterar a posição padrão das caixas meta do Wordpress, como "imagem em destaque" para tipos de post personalizados, sem precisar arrastá-los manualmente?
Exemplo:
Eu estou querendo saber se existe uma maneira de alterar a posição padrão das caixas meta do Wordpress, como "imagem em destaque" para tipos de post personalizados, sem precisar arrastá-los manualmente?
Exemplo:
Respostas:
Você pode remover as meta boxes padrão com remove_meta_box e adicioná-las novamente em uma posição diferente com add_meta_box:
add_action('do_meta_boxes', 'wpse33063_move_meta_box');
function wpse33063_move_meta_box(){
remove_meta_box( 'postimagediv', 'post', 'side' );
add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', 'post', 'normal', 'high');
}
Isso o removerá da coluna lateral e o adicionará à coluna principal. mude post
neste exemplo para o nome do seu tipo de postagem personalizado.
add_meta_box()
necessário um $callback
nome de função, como é que eu sei o nome da função usada pelo WordPress? Suponha que eu queira fazer o mesmo com a barra lateral meta_box 'Categories' (#categorydiv)?
/wp-admin/edit-form-advanced.php
e você verá onde o WordPress adiciona todas as meta boxes principais e os retornos de chamada e argumentos que ele usa. para categorias é post_categories_meta_box
.
Eu também lutei com isso. Eu realmente não encontrei uma maneira limpa de redefinir o layout / pedido - principalmente porque ele pode ser alterado pelos usuários quando / se arrastarem as caixas.
Eu gosto de fazer coisas 'com' wordpress (geralmente compensa), rathe do que colidir com ele e da maneira que o wordpress faz é o seguinte:
O wordpress armazena as posições arrastadas por usuário por tela e há várias teclas meta de usuário que ele usa, dependendo da página / tela em que está.
Portanto, você pode adicionar uma ação ou filtro para cada novo usuário para definir a configuração do usuário da maneira que deseja que o padrão seja.
1) Arraste e organize a página que você deseja afetar; em seguida, 2) procure no phpmyadmin na meta-usuário por seu ID e veja o que o wp armazenou lá. 3) codifique a nova ação do usuário da seguinte forma: se um usuário NÃO tiver essa configuração já definida (para evitar a substituição de uma opção pessoal), você poderá defini-la da maneira que desejar - com o valor encontrado ao defini-la manualmente.
Para ter uma idéia das meta-metas de usuários que você está procurando, consulte estas capturas de tela: http://wpusersplugin.com/related-plugins/amr-user-templates/screenshots-for-user-templates/
(Acabei escrevendo um plug-in genérico para que eu pudesse, como administrador, definir meu layout preferido para todos os usuários para todos os tipos de páginas / telas. Depois, eles poderiam alterar isso, por exemplo, à medida que se tornassem mais proficientes. Também não será interrompido quando o wp mudar o plug-in coisas como eu apenas busca os valores de usuário do modelo, nem tenta definir o valor para um valor codificado.)
Se você deseja encomendar com precisão suas meta boxes, pode usar este plugin: https://wordpress.org/plugins/post-meta-box-order/
Ele é reproduzido na meta-box-order_post da opção do usuário (tabela wp_usermeta).
Nota 1: essa técnica pode ser aplicada a qualquer CPT personalizado alterando o final do sinalizador: meta-box-order_ [YOUR_CPT]
Nota 2: não esqueça de alterar o hash no código do plug-in para aplicar seu novo pedido a todos os usuários existentes.