Как переименовать сообщения постов типа постов

Я использую Posts-type Posts для отображения элементов портфеля, и странно, что портфель помечен как сообщения. Есть ли способ переименовать Posts to Portfolio, чтобы лучше отразить его использование.

Если вы хотите просто переименовать внешний вид сообщений, а не создать собственный тип сообщения, добавьте этот код в свой файл functions.php тем.

// hook the translation filters add_filter( 'gettext', 'change_post_to_portfolio' ); add_filter( 'ngettext', 'change_post_to_portfolio' ); function change_post_to_portfolio( $translated ) { $translated = str_ireplace( 'Post', 'Portfolio', $translated ); // ireplace is PHP5 only return $translated; } 

В интересах прозрачности я получил этот код из этой статьи , хотя в прошлом я использовал подобные трюки.

Вам нужно создать пользовательский тип сообщения «Портфолио».

Сообщения – это сообщения. Зачем пытаться использовать их как нечто, чего нет, а затем попытаться изменить свою номенклатуру, вместо того, чтобы писать одну или две простые функции в functions.php , это приведет к тому, что вы будете иметь как точную функциональность, так и точную номенклатуру?

Я использовал следующий скрипт, чтобы переименовать тип сообщения по умолчанию:

 function change_post_menu_label() { global $menu, $submenu; $menu[5][0] = 'Portfolio'; $submenu['edit.php'][5][0] = 'Portfolio'; $submenu['edit.php'][10][0] = 'New Portfolio'; $submenu['edit.php'][16][0] = 'Portfolio Tags'; echo ''; } add_action( 'admin_menu', 'change_post_menu_label' ); function change_post_object_label() { global $wp_post_types; $labels = &$wp_post_types['post']->labels; $labels->name = 'Portfolio'; $labels->singular_name = 'Portfolio'; $labels->add_new = 'New Portfolio'; $labels->add_new_item = 'New Portfolio'; $labels->edit_item = 'Edit Portfolio'; $labels->new_item = 'New Portfolio'; $labels->view_item = 'View Portfolio'; $labels->search_items = 'Search Portfolio'; $labels->not_found = 'Not found'; $labels->not_found_in_trash = 'Not found in trash'; } add_action( 'init', 'change_post_object_label' ); 
 // hook the translation filters add_filter( 'gettext', 'change_post_to_article' ); add_filter( 'ngettext', 'change_post_to_article' ); function change_post_to_article( $translated ) { $translated = str_ireplace( 'Post', 'Article', $translated ); // ireplace is PHP5 only return $translated; } 

Я получил этот совет от журнала разгрома и протестировал его, и он отлично работает

 http://www.smashingmagazine.com/2011/05/10/new-wordpress-power-tips-for-template-developers-and-consultants/ 

Я нашел эту ветку, когда искал решение изменить тип сообщения от одного имени к другому.

Вместо того, чтобы делать пользовательский запрос, предложенный кем-то здесь, я просто сделал это:

 $post = get_post( $id ); // The current post id $post->post_type = 'receipt'; // The new post type name wp_update_post( $post ); // Updating the new information 

Cpt должен быть уже создан и сформирован.

Переименование сообщений в портфолио

 function litho_posts_portfolio() { global $menu; global $submenu; $menu[5][0] = __("Portfolio", 'litho'); $submenu['edit.php'][5][0] = __("Portfolio", 'litho'); $submenu['edit.php'][10][0] = __("New Item", 'litho'); echo ''; } function litho_posts_portfolio_label() { global $wp_post_types; $labels = &$wp_post_types['post']->labels; $labels->name = __("Portfolio", 'litho'); $labels->singular_name = __("Item", 'litho'); $labels->add_new = __("New Item", 'litho'); $labels->add_new_item = __("New Item", 'litho'); $labels->edit_item = __("Edit Item", 'litho'); $labels->new_item = __("Item", 'litho'); $labels->view_item = __("View Item", 'litho'); $labels->search_items = __("Search Portfolio", 'litho'); $labels->not_found = __("No Item Found", 'litho'); $labels->not_found_in_trash = __("No Item found in Trash", 'litho'); } add_action( 'init', 'litho_posts_portfolio_label' ); add_action( 'admin_menu', 'litho_posts_portfolio' ); 

Если вы просто хотите изменить ярлык меню администратора из «Почта» -> «Портфолио», посмотрите на этот вопрос:

Изменение меток меню администратора

[Обновить]

Этот редактор меню администратора плагина выглядит так, что он позволит вам легче сменять ярлыки меню – я его еще не протестировал.

Вам просто нужно создать еще один пользовательский пост с теми же возможностями, что и обычный пост. Затем вы можете отключить меню «Сообщения» следующим образом:

 function remove_menus() { global $menu; $restricted = array( __('Posts')); end ($menu); while (prev($menu)) { $value = explode(' ',$menu[key($menu)][0]); if(in_array($value[0] != NULL?$value[0]:"" , $restricted)) { unset($menu[key($menu)]); } } } add_action('admin_menu', 'remove_menus'); с function remove_menus() { global $menu; $restricted = array( __('Posts')); end ($menu); while (prev($menu)) { $value = explode(' ',$menu[key($menu)][0]); if(in_array($value[0] != NULL?$value[0]:"" , $restricted)) { unset($menu[key($menu)]); } } } add_action('admin_menu', 'remove_menus');