Change the WordPress Post Type name to Something Else

You can change the default Post type name in WordPress from Posts to something else like News using the get_post_type_object,  normal behaviour of the Posts occur just the label name in the WordPress dashboard has been changed.

wordpress-change-post-name

 

add_action( 'init', 'cp_change_post_object' );
// Change dashboard Posts to News
function cp_change_post_object() {
    $get_post_type = get_post_type_object('post');
    $labels = $get_post_type->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 News found';
        $labels->not_found_in_trash = 'No News found in Trash';
        $labels->all_items = 'All News';
        $labels->menu_name = 'News';
        $labels->name_admin_bar = 'News';
}

So the ‘post’ type is referenced as the type in get_post_type_object and a $labels variable accesses the labels property – which is then assigned the new values of ‘News’, so instead of using a new CPT you can just rename the default one if its not been used.

 

ref

6 Comments

  1. Al Avery on June 5, 2019 at 8:47 pm

    How would one also go about changing the Title of the “Posts” archive page? Thanks!

  2. Lehel Matyus on March 28, 2019 at 10:00 am

    Great post, very useful. Just what I needed.
    Thank you.

  3. Paul Douglas on October 24, 2018 at 12:30 am

    Nice function. How then do you change the order, dashicon, and meta? Thank you!

    • John Regalado on February 18, 2019 at 11:37 pm

      I was wondering the same thing, so for anyone who want’s a follow up it can easily be changed by adding this line of code to the function:

      $get_post_type->menu_icon = “ENTER_ICON”;

      so for a folder you could use: $get_post_type->menu_icon = “dashicons-portfolio”;

      A full list of icons are available here: https://developer.wordpress.org/resource/dashicons

      You can reference the get_post_type object here: https://codex.wordpress.org/Function_Reference/get_post_type_object

      So the full change would look like this:

      add_action( ‘init’, ‘cp_change_post_object’ );
      // Change dashboard Posts to News
      function cp_change_post_object() {
      $get_post_type = get_post_type_object(‘post’);
      $labels = $get_post_type->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 News found’;
      $labels->not_found_in_trash = ‘No News found in Trash’;
      $labels->all_items = ‘All News’;
      $labels->menu_name = ‘News’;
      $labels->name_admin_bar = ‘News’;
      // ADDED THIS LINE, but you can put it anywhere in this function as long it as it comes after $get_post_type = get_post_type_object;
      $get_post_type->menu_icon = “dashicons-media-document”;
      }

      • Akira on May 16, 2019 at 2:59 pm

        Shouldn’t it be

        ‘dashicons-media-document’;

        and the after $get_post_type = get_post_type_object; isn’t needed

  4. Damien Carbery on April 30, 2018 at 8:01 am

    I did something very similar for a custom post type (though the logic is the same). I used the ‘registered_post_type’ action.
    https://www.damiencarbery.com/2018/03/change-settings-of-a-cpt-custom-post-type/

Leave a Comment