J'essaie de créer une fonction qui me permettrait de changer le titre d'une méta-boîte établie (c.-à-d., Changer le titre de la méta-boîte «Auteurs» en «Équipe», etc.)
Je ne voulais pas utiliser JS ni devoir désinstaller la méta-boîte d'origine et la rajouter.
J'ai commencé avec ce qui suit selon un autre thread qui répertorie le code comme suit:
// 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
}
Je suis coincé sur la partie pour "parcourir le tableau et changer les titres que vous voulez".
Quelle serait la meilleure façon d'y parvenir? Vous utilisez une boucle foreach? Ou un scénario Switch / Case? Je suis assez nouveau dans ce domaine, est-ce que quelqu'un pourrait fournir un exemple de la façon d'y parvenir?
Mise à jour: l'exemple de Stephen Harris fonctionne pour Core Meta (merci!):
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';
}
Mise à jour: corrigé pour les méta personnalisées
Pour que cela fonctionne avec vos méta personnalisées, changez votre add_action comme suit afin qu'il déclenche votre code de titre de modification après l'ajout de la méta-boîte:
add_action('add_meta_boxes', 'change_meta_box_titles', 999);
$wp_meta_boxes['post']['side']['core']['projectinfo']['title']= 'New Title';
mais ça n'a pas marché, ai-je raté quelque chose ici?echo '<pre>'; print_r($wp_meta_boxes); echo '</pre>'; wp_die('');
après avoir modifié le titre pour voir ce qui ne va pas. Je suppose que ce n'est pas «essentiel»: DJe sais que c'est une vieille question, mais il y a un crochet de filtre pour cela. Vous ajouteriez à votre thème
functions.php
ou plugin de fonctionnalité personnalisée une fonction accrochée àpost_type_labels_{$post_type}
Prenons par exemple le fait que nous avons un type de publication personnalisé appelé
band
et que nous souhaitons remplacer les libellés des images par "Band Photo". La fonction ressemblerait à ceci:réf: https://developer.wordpress.org/reference/hooks/post_type_labels_post_type/
la source
Afaik, votre meilleur pari serait d'accrocher une fonction au crochet juste avant la création de la meta box:
la source
D'accord ... C'est un peu hacky, mais je pensais que c'était intelligent. Fondamentalement, vous utilisez simplement les fonctions de langage intégrées pour changer ce que vous aimez. Tant que vous connaissez le ou les mots d'origine que vous souhaitez modifier et qu'ils ont été correctement appelés dans le code avec quelque chose comme
__('text in here')
, vous pouvez les changer en ce que vous voulez.Je l'ai utilisé une fois pour changer la méta-boîte "Extraits" en un nom différent (avec la description à l'intérieur) parce que mon thème l'a utilisé pour des morceaux de texte extrêmement petits. Regarde:
En fait, je n'étais pas le seul à y penser. Surprise. Voici un article discutant de la même idée , avec une méthode différente d'utilisation de gettext.
la source
Depuis WordPress 4.4, l'argument $ screen peut être un tableau qui simplifie considérablement les ajouts ou les modifications de masse des métadonnées.
Le code suivant change le titre de la méta-boîte «Auteur» en «Éditeur» sur les pages, les publications, les pièces jointes et tous les types de publication personnalisés, quel que soit le nombre ajouté ou lorsqu'ils sont ajoutés à votre site.
la source
C'est un peu hacky, mais pour ceux qui ont besoin d'une solution CSS simple, utilisez ceci:
Remplacez simplement votre-metabox-id par le vôtre. :)
(note: j'ajoute normalement un admin.css via functions.php, c'est là que je contrôle certains styles d'administration wp)
la source