Sto usando i messaggi tipo messaggi per visualizzare gli articoli del portfolio e sembra strano che il portafoglio sia etichettato come messaggi. Esiste un modo per rinominare Posts in Portfolio invece di riflettere meglio il suo utilizzo.
Sto usando i messaggi tipo messaggi per visualizzare gli articoli del portfolio e sembra strano che il portafoglio sia etichettato come messaggi. Esiste un modo per rinominare Posts in Portfolio invece di riflettere meglio il suo utilizzo.
Risposte:
Se vuoi semplicemente rinominare l'aspetto dei post, piuttosto che creare un tipo di post personalizzato, aggiungi questo codice al tuo file Functions.php di temi.
// 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;
}
Nell'interesse della trasparenza ho ricevuto questo codice da questo articolo , anche se in passato ho usato trucchi simili.
Ho usato il seguente script per rinominare il tipo di post predefinito:
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' );
Devi creare un tipo di post personalizzato, "Portfolio".
I post sono post. Perché provare a usarli come qualcosa che non sono, e quindi provare a cambiare la loro nomenclatura, invece di scrivere una o due semplici funzioni functions.php, che si tradurrà in avere sia la funzionalità esatta che la nomenclatura esatta che desideri?
UPDATE wp_posts SET post_type = 'funny-bunny' WHERE post_type = 'post';: molto probabilmente dovrai cambiare il prefisso della tabella (wp_) per riflettere quell'impostazione nella tua attuale installazione.
// 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;
}
Ho preso questo consiglio da smashing magazine e l'ho testato e funziona benissimo
http://www.smashingmagazine.com/2011/05/10/new-wordpress-power-tips-for-template-developers-and-consultants/
Ho trovato questa discussione quando stavo cercando una soluzione per cambiare il tipo di post da un nome all'altro.
Invece di fare una query personalizzata come suggerito da qualcuno qui ho semplicemente fatto questo:
$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
I cpt devono essere già stati creati e formati ..
Rinomina i post nel portfolio
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' );
__()funzione.
echo '';?
Se vuoi solo cambiare l'etichetta del menu di amministrazione da Posta -> Portfolio, guarda questa domanda:
Modifica delle etichette del menu Admin
[Aggiornare]
Questo plug-in Admin Menu Editor sembra che ti permetterà di cambiare più facilmente le etichette dei menu - non l'ho ancora provato.
Devi solo creare un altro post personalizzato con le stesse funzionalità di un post normale. È quindi possibile disabilitare il menu Messaggi con questo:
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');
Il get_post_type_object farà il lavoro.
add_action( 'init', 'ns_change_post_object' );
// Change dashboard Posts to News
function ns_change_post_object() {
$get_post_type = get_post_type_object('post');
$labels = $get_post_type->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 News found';
$labels->not_found_in_trash = 'No News found in Trash';
$labels->all_items = 'All News';
$labels->menu_name = 'News';
$labels->name_admin_bar = 'News';
}