Change label Posts to Articles in WordPress

I’m working on wordpress. Can anybody help me how can I change admin panel menu label in wordpress.

Specifically, I want to change the label for Posts to Articles. And all of the instances in admin panel of Posts to Article.

Read More

Kindly advise.

Related posts

Leave a Reply

3 comments

  1. Here is the code you need to add into your theme functions file.

    // Replace Posts label as Articles in Admin Panel 
    
    function change_post_menu_label() {
        global $menu;
        global $submenu;
        $menu[5][0] = 'Articles';
        $submenu['edit.php'][5][0] = 'Articles';
        $submenu['edit.php'][10][0] = 'Add Articles';
        echo '';
    }
    function change_post_object_label() {
            global $wp_post_types;
            $labels = &$wp_post_types['post']->labels;
            $labels->name = 'Articles';
            $labels->singular_name = 'Article';
            $labels->add_new = 'Add Article';
            $labels->add_new_item = 'Add Article';
            $labels->edit_item = 'Edit Article';
            $labels->new_item = 'Article';
            $labels->view_item = 'View Article';
            $labels->search_items = 'Search Articles';
            $labels->not_found = 'No Articles found';
            $labels->not_found_in_trash = 'No Articles found in Trash';
            $labels->name_admin_bar = 'Add Article';'
    }
    add_action( 'init', 'change_post_object_label' );
    add_action( 'admin_menu', 'change_post_menu_label' );
    

    Adapted from: https://wordpress.stackexchange.com/questions/9211/changing-admin-menu-labels

  2. I was able to solve this using the post_type_labels_{$post_type} filter like so

    add_filter( 'post_type_labels_post', 'change_post_labels' );
    
    function change_post_labels( $args ) {
            foreach( $args as $key => $label ){
                $args->{$key} = str_replace( [ __( 'Posts' ), __( 'Post' ) ], __( 'News' ), $label );
            }
    
            return $args;
    }
    

    This answer also leaves translation support intact. The only note is you will probably have to run it from a plugin because the theme loads too late.

  3. In your theme functions file include these lines:

    //Change Posts labels in sidebar admin menu
      function custom_post_menu_label() {
         global $menu;
         global $submenu;
         $menu[5][0] = 'News';
         $submenu['edit.php'][5][0] = 'News';
         $submenu['edit.php'][10][0] = 'Add News';         
      }
    
     //Change Posts labels in other admin area
      function custom_post_object_label() {
        global $wp_post_types;
        $labels = &$wp_post_types['post']->labels;
        $labels->name = 'News';
        $labels->singular_name = 'News';
        $labels->add_new = 'Add News';
        $labels->add_new_item = 'Add News';
        $labels->edit_item = 'Edit News';
        $labels->new_item = 'News';
        $labels->view_item = 'View News';
        $labels->search_items = 'Search News';
        $labels->not_found = 'No results on News';
        $labels->not_found_in_trash = 'No News in Trash';
        $labels->name_admin_bar = 'Add News';       
    
       }
    
     add_action( 'init', 'custom_post_object_label' );
     add_action( 'admin_menu', 'custom_post_menu_label' );
    

    Author of previous answer forgot to include ‘$labels->name_admin_bar = ‘Add News’;’ string.