我正在研究 wordpress。任何人都可以帮助我如何更改 WordPress 中的管理面板菜单标签。
具体来说,我想将帖子的标签更改为文章。以及帖子到文章管理面板中的所有实例。
请多多指教。
这是您需要添加到主题功能文件中的代码。
// 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' );
改编自:https://wordpress.stackexchange.com/questions/9211/changing-admin-menu-labels
我能够像这样使用
post_type_labels_{$post_type}
过滤器解决这个问题
add_filter( 'post_type_labels_post', 'change_post_labels' );
function change_post_labels( $args ) {
foreach( $args as $key => $label ){
if( null === $label ) {
continue;
}
$args->{$key} = str_replace( [ __( 'Posts' ), __( 'Post' ) ], __( 'News' ), $label );
}
return $args;
}
这个答案也完好无损地保留了翻译支持。
唯一的注意事项是您必须在
init
操作触发之前添加过滤器。
在您的主题函数文件中包含以下行:
//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' );
之前答案的作者忘记包含 '$labels->name_admin_bar = '添加新闻';'字符串。