Dans la barre d'administration, un administrateur peut créer un nouveau poste en utilisant le menu déroulant Ajouter un nouveau. Là, je veux changer le libellé Post
en quelque chose d'autre.
Comment puis-je faire ceci? J'ai juste besoin du code pour faire le changement dans la barre d'administration, car j'ai déjà le code pour changer le libellé Post partout ailleurs dans la section admin.
Des points bonus si vous pouvez me dire comment changer l'ordre des étiquettes dans le menu déroulant.
Trouvé ma réponse, y compris ma solution complète:
<?php
/*
Plugin Name: Rename Posts to News
Description: Rename built in posts to be called News
Version: 1.0
Author: Scott Cariss @ Philosophy Design
Author URI: http://www.philosophydesign.com
*/
// Not a WordPress context? Stop.
! defined( 'ABSPATH' ) and exit;
add_action( 'init', array ( 'chg_Posts_to_News', 'init' ) );
add_action( 'admin_menu', array ( 'chg_Posts_to_News', 'admin_menu' ) );
class chg_Posts_to_News
{
public static function init()
{
global $wp_post_types;
$labels = &$wp_post_types['post']->labels;
$labels->name = 'Corporate News';
$labels->singular_name = 'Corporate News';
$labels->add_new = 'Add Corporate News';
$labels->add_new_item = 'Add Corporate News';
$labels->edit_item = 'Edit Corporate News';
$labels->new_item = 'Corporate News';
$labels->view_item = 'View Corporate News';
$labels->search_items = 'Search Corporate News';
$labels->not_found = 'No corporate news found';
$labels->not_found_in_trash = 'No corporate news found in trash';
$labels->name_admin_bar = 'Corporate News';
}
public static function admin_menu()
{
global $menu;
global $submenu;
$menu[5][0] = 'Corporate News';
$submenu['edit.php'][5][0] = 'Corporate News';
$submenu['edit.php'][10][0] = 'Add Corporate News';
}
}
?>
Juste besoin de changer l'étiquette $labels->name_admin_bar = 'Corporate News';
En regardant à travers la fonction wp_admin_bar_new_content_menu( $wp_admin_bar )
qui consiste à placer ces éléments du menu déroulant, il n’ya aucun filtre ou crochet qui me permette de changer l’ordre afin que je puisse seulement présumer que ce n’est pas faisable sans quelques piratages JS.
UPDATE: Si vous trouvez cette réponse, veuillez ne pas le faire. Utilisez $wp_post_types['post']->labels->name_admin_bar
à la place, comme indiqué ci-dessus.
Sloppy and hackish, je sais, mais voici comment j'ai changé "Post" dans le menu déroulant "Nouveau" de la barre d'administration pour lire "Projet":
function change_post_admin_bar_label() {
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
$('#wp-admin-bar-new-post > a').text('Project');
});
</script>
<?php
}
add_action( 'wp_after_admin_bar_render', 'change_post_admin_bar_label' );
Autant que je sache, vous ne pouvez pas, car aucun filtre n'est appliqué à cette étiquette. (Vérifiez wp-includes/admin-bar.php
, ligne 364).
Mais vous pouvez supprimer le lien actuel et ajouter votre propre lien pour remplir la même fonction, i. e. ajouter un nouveau post. Cochez cette case pour connaître la méthode.