Answers:
这是更改标签的过程(在示例中,我将帖子更改为“联系人”)
function change_post_menu_label() {
global $menu;
global $submenu;
$menu[5][0] = 'Contacts';
$submenu['edit.php'][5][0] = 'Contacts';
$submenu['edit.php'][10][0] = 'Add Contacts';
$submenu['edit.php'][15][0] = 'Status'; // Change name for categories
$submenu['edit.php'][16][0] = 'Labels'; // Change name for tags
echo '';
}
function change_post_object_label() {
global $wp_post_types;
$labels = &$wp_post_types['post']->labels;
$labels->name = 'Contacts';
$labels->singular_name = 'Contact';
$labels->add_new = 'Add Contact';
$labels->add_new_item = 'Add Contact';
$labels->edit_item = 'Edit Contacts';
$labels->new_item = 'Contact';
$labels->view_item = 'View Contact';
$labels->search_items = 'Search Contacts';
$labels->not_found = 'No Contacts found';
$labels->not_found_in_trash = 'No Contacts found in Trash';
}
add_action( 'init', 'change_post_object_label' );
add_action( 'admin_menu', 'change_post_menu_label' );
要更改菜单顺序,请执行以下操作:
// CUSTOMIZE ADMIN MENU ORDER
function custom_menu_order($menu_ord) {
if (!$menu_ord) return true;
return array(
'index.php', // this represents the dashboard link
'edit.php', //the posts tab
'upload.php', // the media manager
'edit.php?post_type=page', //the posts tab
);
}
add_filter('custom_menu_order', 'custom_menu_order');
add_filter('menu_order', 'custom_menu_order');
我有删除项目的代码,但是它是全局的,而不是基于用户访问级别的
要重命名默认帖子类型(或其他任何类型),只需使用filter即可post_type_labels_{$post_type}
。默认情况下post
为post_type_labels_post
。在下面的代码中,是标签(WP 4.7.1
)的完整列表。您不必更改所有内容。
add_filter( 'post_type_labels_post', 'news_rename_labels' );
/**
* Rename default post type to news
*
* @param object $labels
* @hooked post_type_labels_post
* @return object $labels
*/
function news_rename_labels( $labels )
{
# 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 = 'New News';
$labels->view_item = 'View News';
$labels->view_items = 'View News';
$labels->search_items = 'Search News';
$labels->not_found = 'No news found.';
$labels->not_found_in_trash = 'No news found in Trash.';
$labels->parent_item_colon = 'Parent news'; // Not for "post"
$labels->archives = 'News Archives';
$labels->attributes = 'News Attributes';
$labels->insert_into_item = 'Insert into news';
$labels->uploaded_to_this_item = 'Uploaded to this news';
$labels->featured_image = 'Featured Image';
$labels->set_featured_image = 'Set featured image';
$labels->remove_featured_image = 'Remove featured image';
$labels->use_featured_image = 'Use as featured image';
$labels->filter_items_list = 'Filter news list';
$labels->items_list_navigation = 'News list navigation';
$labels->items_list = 'News list';
# Menu
$labels->menu_name = 'News';
$labels->all_items = 'All News';
$labels->name_admin_bar = 'News';
return $labels;
}
如果您需要国际化支持,只需使用__( $text, $textdomain )
:
$labels->name = __( 'News', 'textdomain' );
我在函数中找到了过滤器:get_post_type_labels()
从一个文件wp-includes/post.php
:
/**
* Filter the labels of a specific post type.
*
* The dynamic portion of the hook name, `$post_type`, refers to
* the post type slug.
*
* @since 3.5.0
*
* @see get_post_type_labels() for the full list of labels.
*
* @param object $labels Object with labels for the post type as member variables.
*/
$labels = apply_filters( "post_type_labels_{$post_type}", $labels );
诺克罗斯(Norcross)上面的示例是正确的,但是我需要国际化的可能性。如果我有声誉,这将是Norcross的回答下的评论,但由于我没有,因此我将修改后的代码放在此处。“ i18n_context”是翻译上下文的任意名称空间,例如,这可以是您的插件或主题的名称。
function change_post_menu_label() {
global $menu;
global $submenu;
$menu[5][0] = __('Contacts', 'i18n_context');
$submenu['edit.php'][5][0] = __('Contacts', 'i18n_context');
$submenu['edit.php'][10][0] = __('Add Contacts', 'i18n_context');
$submenu['edit.php'][15][0] = __('Status', 'i18n_context'); // Change name for categories
$submenu['edit.php'][16][0] = __('Labels', 'i18n_context'); // Change name for tags
echo '';
}
function change_post_object_label() {
global $wp_post_types;
$labels = &$wp_post_types['post']->labels;
$labels->name = __('Contacts', 'i18n_context');
$labels->singular_name = __('Contact', 'i18n_context');
$labels->add_new = __('Add Contact', 'i18n_context');
$labels->add_new_item = __('Add Contact', 'i18n_context');
$labels->edit_item = __('Edit Contacts', 'i18n_context');
$labels->new_item = __('Contact', 'i18n_context');
$labels->view_item = __('View Contact', 'i18n_context');
$labels->search_items = __('Search Contacts', 'i18n_context');
$labels->not_found = __('No Contacts found', 'i18n_context');
$labels->not_found_in_trash = __('No Contacts found in Trash', 'i18n_context');
}
add_action( 'init', 'change_post_object_label' );
add_action( 'admin_menu', 'change_post_menu_label' );