Estou tentando criar uma função que me permita alterar o título de uma meta box estabelecida (ou seja, alterar o título da Meta Box 'Authors' para 'Team' etc.)
Eu não queria usar o JS ou precise desmarcar a meta box original e adicioná-la novamente.
Comecei com o seguinte, conforme outro segmento que listava o código da seguinte maneira:
// hook to the 'add_meta_boxes' action
add_action('add_meta_boxes', 'change_meta_box_titles');
function change_meta_box_titles($post_type, $post)) {
global $wp_meta_boxes; // array of defined meta boxes
// cycle through the array, change the titles you want
}
Estou preso na parte de "percorrer a matriz e alterar os títulos que você deseja".
Qual seria a melhor maneira de conseguir isso? Usando um foreach para fazer um loop? Ou um cenário de Switch / Case? Eu sou bastante novo nisso, alguém poderia dar um exemplo de como fazer isso?
Atualização: O exemplo de Stephen Harris funciona para o Core Meta (obrigado!):
add_action('add_meta_boxes', 'change_meta_box_titles');
function change_meta_box_titles() {
global $wp_meta_boxes; // array of defined meta boxes
// cycle through the array, change the titles you want
$wp_meta_boxes['post']['normal']['core']['authordiv']['title']= 'Team Member';
}
Atualização: corrigida para Meta personalizado
Para que isso funcione com as meta personalizadas, altere sua add_action da seguinte maneira, para que ele ative seu código de título de alteração após a adição da meta box:
add_action('add_meta_boxes', 'change_meta_box_titles', 999);
$wp_meta_boxes['post']['side']['core']['projectinfo']['title']= 'New Title';
mas isso não funcionou, perdi algo aqui?echo '<pre>'; print_r($wp_meta_boxes); echo '</pre>'; wp_die('');
Depois de alterar o título para ver o que deu errado. Meu palpite é que não é "essencial": DEu sei que essa é uma pergunta antiga, mas existe um gancho de filtro para isso. Você adicionaria ao plugin de funcionalidade personalizada
functions.php
ou do seu tema uma função conectada apost_type_labels_{$post_type}
Tomemos, por exemplo, que temos um tipo de postagem personalizado chamado
band
e queremos alterar os rótulos das imagens em destaque para "Band Photo". A função ficaria assim:ref: https://developer.wordpress.org/reference/hooks/post_type_labels_post_type/
fonte
No entanto, sua melhor aposta seria conectar uma função ao gancho imediatamente antes da criação da meta box:
fonte
Ok ... Isso é um pouco hacky, mas eu pensei que era inteligente. Basicamente, você apenas usa as funções de linguagem incorporadas para alterar o que você gosta. Contanto que você conheça a palavra original ou as palavras que deseja alterar e elas tenham sido adequadamente identificadas no código com algo parecido
__('text in here')
, você pode alterá-las para o que quiser.Uma vez eu o usei para alterar a meta box "Trechos" para um nome diferente (junto com a descrição), porque meu tema a usava para pedaços de texto extremamente pequenos. Dar uma olhada:
Como se viu, não fui o único a pensar nisso. Surpresa. Aqui está um artigo discutindo a mesma idéia , com um método diferente de usar o gettext.
fonte
Desde o WordPress 4.4, o $ screen arg pode ser uma matriz que simplifica muito as adições em massa ou alterações de meta boxes.
O código a seguir altera o título da caixa meta "Autor" para "Editor" em páginas, postagens, anexos e todos os tipos de postagem personalizados, independentemente de quantas foram adicionadas ou quando foram adicionadas ao seu site.
fonte
Isso é um pouco hacky, mas para quem precisa de uma solução CSS simples, use o seguinte:
Apenas substitua o seu-metabox-id pelo seu. :)
(nota: eu normalmente adiciono um admin.css através do functions.php, é onde eu controlo alguns estilos de administrador do wp)
fonte