web-dev-qa-db-fra.com

Changer les étiquettes du type d'article personnalisé via le thème enfant

J'ai un thème parent WordPress qui utilise un type de publication personnalisé appelé portfolio, que j'aimerais modifier en property.

J'aimerais que tous les éléments contextuels soient modifiés pour afficher property comme, "show properties", "add new property", "delete property", etc.
Je sais que je peux le faire en mettant à jour le thème parent, mais je préférerais ne pas le faire, si je pouvais l'éviter.

J'ai trouvé cette réponse , mais malheureusement, je ne suis pas assez PHP assez averti pour écrire ma propre fonction et changer cela.

Est-ce que quelqu'un peut m'aider avec ça? Je suis un peu coincé.
J’ai le sentiment que c’est quelque chose de simple pour un PHP Dev. Je ne sais juste pas comment le faire.

1
Jeremy Miller

$wp_post_types est un tableau global qui contient les objets post_type, qui possèdent à leur tour une propriété labels.
Vous pouvez changer $wp_post_types[$post_type]->labels après que le thème parent a défini le CPT.

Ajoute une priorité plus élevée à init hook.

Ajoutez le code suivant dans le fichier functions.php de votre thème.

Pour plus d'informations, consultez l'article du codex sur get_post_type_object .

function change_post_object_label() {
    global $wp_post_types;
    $labels = &$wp_post_types['portfolio']->labels;
    $labels->name = 'Property';
    $labels->singular_name = 'Property';
    $labels->add_new = 'Add Property';
    $labels->add_new_item = 'Add Property';
    $labels->edit_item = 'Edit Property';
    $labels->new_item = 'Property';
    $labels->all_items = 'All Properties';
    $labels->view_item = 'View Property';
    $labels->search_items = 'Search Property';
    $labels->not_found = 'No Property found';
    $labels->not_found_in_trash = 'No Property found in Trash';    
}
add_action( 'init', 'change_post_object_label', 999 );

Ajoutez le code suivant dans functions.php pour remplacer l’étiquette du menu principal à partir de la barre latérale.

function change_post_menu_label() {
  global $menu;
  //print_r($menu); Print menus and find out the index of your custom post type menu from it.
  $menu[27][0] = 'Bacons'; // Replace the 27 with your custom post type menu index from displayed above $menu array 
}
add_action( 'admin_menu', 'change_post_menu_label' );

Ajoutez le code suivant dans functions.php pour ajouter une image au menu CPT de la barre latérale gauche de l'administrateur

add_action('admin_head', 'change_CPT_icon');
function change_CPT_icon() {?>
  <style>
    #menu-posts-portfolio .wp-menu-image { background: url('<?php echo  get_bloginfo('template_directory').'/includes/images/new-image.png';?>') no-repeat 5px 5px transparent !important; }     
  </style>
  <?php
}
3
Vinod Dalvi