J'utilise le plugin de Jigoshop et j'aimerais changer le libellé du menu admin en autre chose que "Produits":
Comment puis-je faire ceci? Quels fichiers ont besoin d'être édités?
Comme Geert l’a noté, vous ne devriez pas éditer les fichiers de plug-ins: les modifications seront remplacées par une mise à jour (... et vous devriez vraiment garder vos plug-ins à jour ...). La meilleure chose à faire est ...
Demandez aux développeurs du plug-in d'ajouter un crochet pour filtrer l'étiquette
Pour maintenant , vous pouvez toutefois effectuer l'une des deux tâches suivantes:
add_action('registered_post_type','wpse54367_alter_post_type',10,2);
function wpse54367_alter_post_type($post_type, $args){
if( $post_type != 'product' )
return;
//Get labels and update them
$labels = get_post_type_labels( get_post_type_object( $post_type ) );
$labels->name = 'Some things';
$labels->singular_name= 'Some thing';
//update args
$args->labels = $labels;
$args->label = $labels->name;
//update post type
global $wp_post_types;
$wp_post_types[$post_type] = $args;
}
puisque l'étiquette est 'traduisible', vous pouvez utiliser le filtre gettext
.
add_filter( 'gettext', '54367_change_label', 10, 2 );
function wpse51861_change_help_text( $translation, $text ) {
if ( $text == 'Products' )
return __('Something else','jigoshop');
return $translation;
}
Vous pouvez utiliser le plugin Admin Menu Editor .
Alors que la réponse de Stephen est un excellent moyen de travailler avec la situation actuelle, une solution plus propre existerait si les développeurs de plug-in effectuaient un simple changement.
Action à prendre par les développeurs du plugin:
Tout d’abord, lors de l’enregistrement d’un type de message, vous devez définir le libellé menu_name
. Cette étiquette est spécifiquement utilisée pour le menu; si elle n’est pas définie, l’étiquette name
est utilisée par défaut.
Lors de la définition de l’étiquette menu_name
, la fonction de traduction _x()
doit être utilisée. De cette façon, les traducteurs peuvent fournir une traduction spécifique uniquement pour le nom du menu. Sinon, la traduction de "Produits" s’appliquera également à l’étiquette name
normale.
register_post_type('product', array(
'labels' => array(
'name' => __( 'Products', 'jigoshop' ),
'menu_name' => _x( 'Products', 'Admin menu name', 'jigoshop' ),
// ...
Mise à jour: j'ai ouvert une requête sur GitHub pour ces modifications dans WooCommerce. Le code de Jigoshop est probablement très similaire.
Action à prendre par l'utilisateur du plug-in:
Chargez un fichier de traduction personnalisé avec une traduction spécifique pour la chaîne de nom de menu. Dans votre fichier po, l'entrée ressemblerait à ceci:
msgctxt "Admin menu name"
msgid "Products"
msgstr "My Productzz"
Pour charger un fichier de traduction personnalisé, vous pouvez vous connecter à la fonction load_textdomain()
. Un plugin bien construit vous permettrait également de déposer des fichiers de traduction personnalisés dans le répertoire wp-content/languages/{plugin_name}/
. WooCommerce le permet , je ne suis pas sûr de Jigoshop.