Modifica delle etichette del menu amministratore
-
-
Forse dovresti dividerloin due diverse domande: * "Ridenominazione delle voci delmenu di amministrazione" *e * "Modifica dell'ordine delle voci delmenu di amministrazione" *?Questoti aiuterà a ottenerepiù visualizzazioniper latua domanda.Maybe you should split this up into two different questions: *"Renaming admin menu items"* and *"Changing the order of admin menu items"*? This will help you get more views for your question.
- 0
- 2011-02-13
- Jan Fabry
-
5 risposta
- voti
-
- 2011-02-12
Ecco laprocedurapermodificare leetichette (nelmioesempio ho cambiatoi postin "contatti")
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' );
Permodificare l'ordine delmenu,procedi con questo:
// 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');
Hoil codiceper rimuovereglielementi,ma èglobalee non èbasato sul livello di accesso dell'utente
Here's the process to change the labels (I changed posts to "contacts" in my example)
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' );
To change the menu order, go with this:
// 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');
I've got code to remove items, but it's globally and not based on user access level
-
Questo èeccellentegrazie!Ora devo solotrovare unmodoper spostare una voce di sottomenu (es. Menu) comepulsante delmenuprincipale.Qualcheidea su questo?This is excellent thanks! Now I just need to find a way of moving a sub menu item (ex. Menus) as a main menu button. Any idea on that?
- 0
- 2011-02-13
- Adam
-
Non hoprovato,ma vedi se l'aggiunta di 'nav-menu.php' all'array lo sposta verso l'alto.Haven't tested, but see if adding 'nav-menus.php' to the array moves it up.
- 0
- 2011-02-13
- Norcross
-
Sfortunatamenteno.Questa è stata l'unicaparte chemi hainfastidito.Voglio soloesserein grado di averemenue widget comepulsantipersonalizzatiin modo che siapiùfacileperi clienti.Grazie comunqueper averciprovatoUnfortunately no. This has been the one part that has been bugging me. I just want to be able to have the menus and widgets be their own buttons so it is easier for clients. Thank you though for trying
- 0
- 2011-02-13
- Adam
-
@Norcross Èfantastico,ma èpossibile adattarloin modo chepossaincludereil dominio deltestoper scopi ditraduzione?@Norcross This is great, but is it possible to adapt it so that it can include the text-domain for translation purposes?
- 0
- 2014-11-12
- Phill Healey
-
@PhillHealey questafunzionenon contiene alcun datoper l'etichettatura,ma solo l'ordine stesso.@PhillHealey this function doesn't contain any data for labeling at all, rather, just the order itself.
- 0
- 2014-11-12
- Norcross
-
@ Norcross Ovviamente.Penso di aver avutotroppi compitiin mente quando l'ho scritto.;-)@Norcross Of course. I think I had too many tasks being juggled in my head when I wrote that. ;-)
- 0
- 2014-11-13
- Phill Healey
-
Piccolo suggerimento.Penso che siagiustoe sufficienteper restituiretrueper l'hook `custom_menu_order`.- `add_filter ('custom_menu_order','__return_true');` L'ordineproviene da `menu_order`.Small hint. I think it is right and enough to return true for the hook `custom_menu_order`. - `add_filter( 'custom_menu_order', '__return_true' );` The order comes from `menu_order`.
- 0
- 2015-03-30
- bueltge
-
La risposta di @ Ivan di seguito èmigliorepoiché utilizzailfiltrointegrato `post_type_labels _ {$post_type}`,che èpiùpulito.@Ivan's answer below is better since it uses the built in filter `post_type_labels_{$post_type}`, which is cleaner.
- 0
- 2018-02-20
- Ryan
-
- 2017-02-19
Per rinominareiltipo dipostpredefinito (o qualsiasi altroper quellamateria) usailfiltro
post_type_labels _ {$post_type}
. Perilpost
predefinito saràpost_type_labels_post
. Nel codice seguente c'è l'elenco completo delleetichette (WP 4.7.1
). Non devi cambiaretutto.add_filter ('post_type_labels_post','news_rename_labels'); /** * Rinominailtipo dipostpredefinitoin notizie * * @param object $etichette * @hookedpost_type_labels_post * @return oggetto $etichette */ funzionenews_rename_labels ($etichette) { # Etichette $ labels- >name='News'; $ labels- > singular_name='News'; $ labels- > add_new='Aggiunginotizie'; $ labels- > add_new_item='Aggiunginotizie'; $ labels- >edit_item='Modificanotizie'; $ labels- >new_item='Nuovenotizie'; $ labels- > view_item='Visualizzanotizie'; $ labels- > view_items='Visualizzanotizie'; $ labels- > search_items='Cercanellenotizie'; $ labels- >not_found='Nessunanotiziatrovata.'; $ labels- >not_found_in_trash='Nessunanotiziatrovatanel Cestino.'; $ labels- >parent_item_colon='Notizieperi genitori';//Nonper "post" $ labels- > archives='Archivi dinotizie'; $ labels- > attributes='News Attributes'; $ labels- >insert_into_item='Inseriscinellenotizie'; $ labels- > upload_to_this_item='Caricatoin questanotizia'; $ labels- > Featured_image='Immaginein primopiano'; $ labels- > set_featured_image='Impostaimmaginein primopiano'; $ labels- > remove_featured_image='Rimuoviimmaginein primopiano'; $ labels- > use_featured_image='Usa comeimmaginein primopiano'; $ labels- >filter_items_list='Filtraelenconotizie'; $ labels- >items_list_navigation='Navigazioneelenconotizie'; $ labels- >items_list='Elenconotizie'; # Menù $ labels- >menu_name='News'; $ labels- > all_items='Tutte lenotizie'; $ labels- >name_admin_bar='Notizie'; restituire $etichette; }
Se desideriil supportoper l'internazionalizzazione,usa semplicemente
__ ($text,$textdomain)
come:$ labels- >name=__ ('News','textdomain');
Hotrovatoilfiltronellafunzione:
get_post_type_labels ()
da unfilewp-includes/post.php
:/** * Filtra leetichette di untipo dipost specifico. * * Laparte dinamica delnome dell'hook,`$post_type`,si riferisce * lo slug ditipopost. * * @ dalla 3.5.0 * * @ vediget_post_type_labels ()per l'elenco completo delleetichette. * * @param object $ labels Oggetto conetichetteperiltipo di articolo come variabilimembro. */ $ labels=apply_filters ("post_type_labels _ {$post_type}",$ labels); To rename default post type (or any other for that matter) just use filter
post_type_labels_{$post_type}
. For defaultpost
it will bepost_type_labels_post
. In the code below is the full list of labels (WP 4.7.1
). You do not have to change everything.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; }
If you want internationalization support, just use
__( $text, $textdomain )
like:$labels->name = __( 'News', 'textdomain' );
I found the filter in function:
get_post_type_labels()
from a filewp-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 );
-
La risposta di Norcrosspotrebbeessere stata lamigliore almomentoin cui è stata scritta,ma questo è un approcciomoltopiùpulito che utilizza unfiltronativoper ottenere lo stesso risultato.Norcross's answer may have been the best at the time it was written, but this is a far cleaner approach that uses a native filter to accomplish the same outcome.
- 2
- 2018-02-20
- Ryan
-
Avendo scritto l'originale,sono d'accordo che questofiltro siamoltomigliore.Having written the original, I agree this filter is much better.
- 2
- 2018-11-26
- Norcross
-
- 2011-02-12
Sono d'accordo .. Ilfile
functions.php
offremoltaflessibilità.Avevobisogno di alcune delle stessefunzionalità che hai descritto con una combinazione difiltrifunctions.php
e questoplugin .Da quello cheposso dire ... questoplugin risolveràentrambii problemie funzionabene anchein situazioni diinstallazionemulti-sito.Spero che questo aiuti.
I agree.. The
functions.php
file gives lots of flexibility. I've needed some of the same functionality that you described with a combination offunctions.php
filters and this plugin.From what I can tell..this plugin would accomplish both of your issues and it works well in Multi-Site install situations too. Hope that helps.
-
Ops ... spara,scusa,ho appena vistoilfatto dinon voler usare unplugin.Ci sono sicuramentemodipertradurrei nomi delle schedee iposizionamenti solo con Functions.php.Perme,dopo averintrapreso questopercorso (cercando diessereprivo dipluginper questo) ho deciso che la codificaextranonne valeva lapena ... data lafacilità d'uso di quelplugin.Scusa se homancato questi criteriprima.Ooops...shoot, sorry, just saw the bit about not wanting to use a plugin. There are definitely ways to go about translating the tab names and placements with just the Functions.php. For me, after heading down this path (trying to be plugin-free for this) I decided that the extra coding just wasn't worth it...given how easy that plugin was to use. Sorry I missed that criteria before.
- 0
- 2011-02-12
- Ross
-
Nessunproblema Ross,loesaminerò comunque.GrazieNo problem Ross, I am going to look into it anyway. Thanks
- 0
- 2011-02-13
- Adam
-
- 2011-02-12
Potresti voleresaminare questa domanda
e il corso chemenzionano su gist
che contiene lefunzioni che stai cercando
rename_admin_menu_section()
per rinominare,adesempio,modificarei postin articoli
e puoi rimuovereilmenu delle apparenzee creare unanuova voce dimenunellaprimapaginaper
You might want to look at this question
and the class they mention there on gist
which holds functions that you ara looking for
rename_admin_menu_section()
to rename for instance change Posts to Articles
and you can remove the appearances menu and create you new top page menu item for
-
- 2016-02-04
L'esempio di Norcross sopra è corretto,ma avevobisogno dellapossibilità diinternazionalizzazione. Se avessi la reputazione,questo sarebbe un commento sotto la risposta di Norcross,mapoichénon lofaccio,inserirò quiil codicemodificato. "i18n_context" è uno spazio deinomi arbitrarioperil contesto ditraduzione,adesempiopotrebbeessereilnome deltuoplugin otema.
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' );
Norcross's example above is right on, but I needed the possibility of internationalization. If I had the reputation, this would be a comment under Norcross's answer, but since I don't, i'll just put the modified code here. 'i18n_context' is an arbitrary namespace for the translation context, this could be the name of your plugin or theme for example.
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' );
-
Perchénon hai suggerito unamodifica all'altra risposta?Why didn't you suggest an edit to the other answer?
- 0
- 2016-02-04
- fuxia
-
behnonposso ancora commentare ...inoltre hopensato che untagliae incollapotesseessere utilenel casoin cui Norcross volessemodificarlo.well i can't comment yet... also i thought a cut and paste could be useful in the case Norcross does want to edit it.
- 0
- 2016-02-05
- nimmolo
Hopassato l'ultimogiorno a utilizzareilfilefunctions.phpperpersonalizzare completamente WordPressperi siti deimiei clienti.Sono stupito di quanto sono riuscito a realizzaree di quanto saràpiùfacile rendere le coseperi miei clienti.
Ho rimosso alcune voci dimenupergli utenti chenon hannoeffettuato l'accesso come amministratore.Quello che spero (e da quello che ho letto di sapere che sipuòfare) ètrovare unmodoper rinominare alcune voci dimenu (barra laterale sinistranell'area di amministrazione).Adesempio,cambiai postin articoli.
Se qualcunopuòfornireil codiceperilfilefunctions.php oindicarmi la direzione,lo apprezzereimolto!