Estou usando o tipo de posts Posts para exibir itens do portfólio e parece estranho ter um portfólio rotulado como posts. Existe alguma maneira de renomear Posts para portfólio para refletir melhor seu uso.
Estou usando o tipo de posts Posts para exibir itens do portfólio e parece estranho ter um portfólio rotulado como posts. Existe alguma maneira de renomear Posts para portfólio para refletir melhor seu uso.
Respostas:
Se você quiser simplesmente renomear a aparência das postagens, em vez de criar um tipo de postagem personalizado, adicione esse código ao arquivo functions.php do seu tema.
// 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;
}
Por uma questão de transparência, recebi esse código deste artigo , embora tenha usado truques semelhantes no passado.
Usei o seguinte script para renomear o tipo de postagem padrão:
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' );
Você precisa criar um Tipo de postagem personalizado, "Portfólio".
Postagens são Postagens. Por que tentar usá-los como algo que não é e, em seguida, tentar alterar sua nomenclatura, em vez de escrever uma ou duas funções simples functions.php, resultando em ter a funcionalidade exata e a nomenclatura exata que você deseja?
UPDATE wp_posts SET post_type = 'funny-bunny' WHERE post_type = 'post';Você provavelmente precisará alterar o prefixo da tabela (wp_) para refletir essa configuração na sua instalação atual.
// 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;
}
Eu peguei essa dica da revista sensacional e testei e funciona muito bem
http://www.smashingmagazine.com/2011/05/10/new-wordpress-power-tips-for-template-developers-and-consultants/
Encontrei esse segmento quando procurava uma solução para alterar o tipo de postagem de um nome para outro.
Em vez de fazer uma consulta personalizada, como sugerido por alguém aqui, eu simplesmente fiz isso:
$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
O cpt já deve ter sido criado e formatado.
Renomear postagens no portfólio
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' );
__()função.
echo '';?
Se você quiser apenas alterar o rótulo do menu do administrador em Post -> Portfolio, veja esta pergunta:
Alterando os rótulos do menu Admin
[Atualizar]
Este plugin Admin Menu Editor parece que permitirá que você altere os rótulos dos menus com mais facilidade - ainda não testei.
Você só precisará criar outra postagem personalizada com os mesmos recursos que uma postagem normal. Você pode desativar o menu Postagens com este:
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');
O get_post_type_object fará o trabalho.
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';
}