Cómo renombrar el tipo de publicación predeterminado 'Posts'

28 abr 2011, 16:49:37
Vistas: 19.5K
Votos: 10

Estoy usando el tipo de publicación 'Posts' para mostrar elementos de portafolio y se ve extraño tener el portafolio etiquetado como posts. ¿Hay alguna manera de renombrar 'Posts' a 'Portafolio' para reflejar mejor su uso?

1
Comentarios

este plugin cambia los tipos de contenido: http://wordpress.org/extend/plugins/post-type-switcher/ creo que este funciona más para cambios masivos http://wordpress.org/extend/plugins/convert-post-types/

helgatheviking helgatheviking
29 jul 2011 07:22:21
Todas las respuestas a la pregunta 9
0
12

Utilicé el siguiente script para renombrar el tipo de entrada predeterminado:

function change_post_menu_label() {
    global $menu, $submenu;

    $menu[5][0] = 'Portafolio';
    $submenu['edit.php'][5][0] = 'Portafolio';
    $submenu['edit.php'][10][0] = 'Nuevo Portafolio';
    $submenu['edit.php'][16][0] = 'Etiquetas de Portafolio';
    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 = 'Portafolio';
    $labels->singular_name = 'Portafolio';
    $labels->add_new = 'Nuevo Portafolio';
    $labels->add_new_item = 'Nuevo Portafolio';
    $labels->edit_item = 'Editar Portafolio';
    $labels->new_item = 'Nuevo Portafolio';
    $labels->view_item = 'Ver Portafolio';
    $labels->search_items = 'Buscar Portafolio';
    $labels->not_found = 'No encontrado';
    $labels->not_found_in_trash = 'No encontrado en la papelera';
}
add_action( 'init', 'change_post_object_label' );
28 sept 2012 09:53:16
3
10

Si deseas simplemente renombrar la apariencia de las entradas, en lugar de crear un tipo de entrada personalizado, añade este código al archivo functions.php de tu tema.

// enganchar los filtros de traducción
add_filter(  'gettext',  'cambiar_entrada_a_portafolio'  );
add_filter(  'ngettext',  'cambiar_entrada_a_portafolio'  );

function cambiar_entrada_a_portafolio( $traducido ) {
  $traducido = str_ireplace(  'Post',  'Portafolio',  $traducido );  // ireplace solo funciona en PHP5
  return $traducido;
}

En aras de la transparencia, obtuve este código de este artículo, aunque he usado trucos similares en el pasado.

13 may 2011 03:31:04
Comentarios

Aunque esto está bien como demostración de un concepto técnico, reemplazar algunas palabras en todos los textos localizados es demasiado general.

Rarst Rarst
18 nov 2012 17:15:00

¿Cómo afectará esto al rendimiento? ¿Los filtros mencionados solo se usan en el backend?

mikkelbreum mikkelbreum
1 oct 2014 12:16:56

Creo que esta no es una buena solución para este caso particular. $translated podría contener una cadena como 'haz clic en el cartero' o 'se om du har fået post' (danés), en cuyo caso NO querrías reemplazar 'post' por 'news'.

mikkelbreum mikkelbreum
1 oct 2014 12:22:55
6

Necesitas crear un Custom Post Type, "Portafolio".

Las entradas son Entradas. ¿Por qué intentar usarlas como algo que no son, y luego tratar de cambiar su nomenclatura, en lugar de escribir una o dos funciones simples en functions.php, que resultarán en tener tanto la funcionalidad exacta como la nomenclatura exacta que deseas?

28 abr 2011 17:04:55
Comentarios

Porque hasta hoy no había usado tipos de contenido personalizados y el sitio web que configuré utiliza la función de blog para mostrar un portafolio, ya que el cliente no quiere un blog - así que pensé, ¿por qué no usar la configuración del blog para mostrar un portafolio en su lugar? Así evito reinventar la rueda, por decirlo de alguna manera. Parece mucho más fácil cambiar los nombres del menú que rehacer todo el sitio, ya que todo el contenido ya ha sido añadido.

Evie Milo Evie Milo
28 abr 2011 18:12:57

Solo haría falta una consulta SQL para cambiar el post_type de todas las publicaciones afectadas, una vez que hayas creado tu Tipo de Contenido Personalizado...

Chip Bennett Chip Bennett
28 abr 2011 18:14:31

Para un experto como tú quizás, pero no para un novato como yo.

Evie Milo Evie Milo
28 abr 2011 18:23:00

Chip definitivamente tiene razón aquí. Esto es lo que haría y lo que debería hacerse en un caso como este, en mi humilde opinión.

mfields mfields
13 may 2011 03:36:07

El SQL que necesitas se ve algo así UPDATE wp_posts SET post_type = 'funny-bunny' WHERE post_type = 'post'; Lo más probable es que necesites cambiar el prefijo de la tabla (wp_) para que coincida con esa configuración en tu instalación actual.

mfields mfields
13 may 2011 03:39:47

Me permito diferir del honorable Chip Bennett... Las entradas (Posts) están ahí para organizar elementos de forma cronológica. ¿Por qué registrar otro post_type, cambiar las consultas, si todo lo que necesitas ya está ahí? En mis sitios web no ingleses, regularmente cambio los archivos de idioma de WordPress para que coincidan con la funcionalidad de Posts, y lo renombro a Noticias, Artículos o Portafolio.

brasofilo brasofilo
1 abr 2012 20:36:39
Mostrar los 1 comentarios restantes
0

La función get_post_type_object hará el trabajo.

add_action( 'init', 'ns_change_post_object' );
// Cambiar las entradas del dashboard a Noticias
function ns_change_post_object() {
   $get_post_type = get_post_type_object('post');
    $labels = $get_post_type->labels;
    $labels->name = 'Noticias';
    $labels->singular_name = 'Noticia';
    $labels->add_new = 'Añadir Noticia';
    $labels->add_new_item = 'Añadir Noticia';
    $labels->edit_item = 'Editar Noticia';
    $labels->new_item = 'Noticia';
    $labels->view_item = 'Ver Noticia';
    $labels->search_items = 'Buscar Noticias';
    $labels->not_found = 'No se encontraron Noticias';
    $labels->not_found_in_trash = 'No hay Noticias en la papelera';
    $labels->all_items = 'Todas las Noticias';
    $labels->menu_name = 'Noticias';
    $labels->name_admin_bar = 'Noticia';
}
16 may 2020 01:48:16
0
// enganchar los filtros de traducción
add_filter(  'gettext',  'cambiar_post_a_articulo'  );
add_filter(  'ngettext',  'cambiar_post_a_articulo'  );

function cambiar_post_a_articulo( $traducido ) {
     $traducido = str_ireplace(  'Post',  'Artículo',  $traducido );  // ireplace solo para PHP5
     return $traducido;
}

Conseguí este tip de Smashing Magazine y lo probé, funciona genial

http://www.smashingmagazine.com/2011/05/10/new-wordpress-power-tips-for-template-developers-and-consultants/
12 may 2011 17:57:57
0

Encontré este hilo cuando buscaba una solución para cambiar el tipo de publicación de un nombre a otro.

En lugar de hacer una consulta personalizada como alguien sugirió aquí, simplemente hice esto:

$post = get_post( $id );      // ID de la publicación actual
$post->post_type = 'receipt'; // Nombre del nuevo tipo de publicación
wp_update_post( $post );      // Actualizando la nueva información

El CPT (tipo de publicación personalizado) debe, por supuesto, haber sido creado y formateado previamente..

10 nov 2012 13:11:19
3

Cambiar nombre de publicaciones a portafolio

function litho_posts_portfolio() {
    global $menu;
    global $submenu;
    $menu[5][0] = __("Portafolio", 'litho');
    $submenu['edit.php'][5][0] = __("Portafolio", 'litho');
    $submenu['edit.php'][10][0] = __("Nuevo Elemento", 'litho');
    echo '';
}
function litho_posts_portfolio_label() {
    global $wp_post_types;
    $labels = &$wp_post_types['post']->labels;
    $labels->name = __("Portafolio", 'litho');
    $labels->singular_name = __("Elemento", 'litho');
    $labels->add_new = __("Nuevo Elemento", 'litho');
    $labels->add_new_item = __("Nuevo Elemento", 'litho');
    $labels->edit_item = __("Editar Elemento", 'litho');
    $labels->new_item = __("Elemento", 'litho');
    $labels->view_item = __("Ver Elemento", 'litho');
    $labels->search_items = __("Buscar en Portafolio", 'litho');
    $labels->not_found = __("No se encontraron elementos", 'litho');
    $labels->not_found_in_trash = __("No hay elementos en la papelera", 'litho');
}
add_action( 'init', 'litho_posts_portfolio_label' );
add_action( 'admin_menu', 'litho_posts_portfolio' );
19 jun 2014 07:53:03
Comentarios

¿En qué se diferencia esto de la otra respuesta de @elbatron?

kaiser kaiser
19 jun 2014 12:30:36

@kaiser - Esta respuesta es correcta, la que está marcada como respuesta por el OP es incorrecta (mira las acciones - 'admin_menu' e 'init' están en el orden incorrecto). Además, esta respuesta utiliza la función __().

David Gard David Gard
16 abr 2015 16:46:39

¿Por qué el echo '';?

Bill Bill
28 feb 2016 16:44:53
1

Solo necesitarás crear otro tipo de entrada personalizada con las mismas capacidades que una entrada regular. Luego puedes deshabilitar el menú de Entradas con esto:

function remove_menus()
{
    global $menu;
    $restricted = array( __('Posts')); // 'Entradas' en español
    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');
28 abr 2011 17:06:47
Comentarios

seguir por este camino generaría demasiado trabajo adicional en esta etapa tan avanzada del proyecto - algo que el presupuesto no permitiría - todo el contenido ya ha sido añadido y solo quería ver si había alguna manera de renombrar las publicaciones a "portfolio" para que fuera menos confuso para el cliente.

Evie Milo Evie Milo
28 abr 2011 18:15:04
4

Si solo quieres cambiar la etiqueta del menú de administración de Post a Portfolio, entonces mira esta pregunta:

Cambiando Etiquetas del Menú de Administración

[Actualización]

Este plugin Editor de Menú de Administración parece que te permitirá cambiar las etiquetas del menú más fácilmente - aunque no lo he probado.

28 abr 2011 17:22:40
Comentarios

gracias, veré si puedo entender algo de esto, aunque parece un poco complicado para mí.

Evie Milo Evie Milo
28 abr 2011 18:13:30

Agregué un enlace a un plugin que debería ayudarte

anu anu
28 abr 2011 18:19:28

gracias por el enlace, pero quiero profundizar más en el archivo functions.php y evitar usar demasiados plugins. Seguí tu primer enlace y eventualmente me llevó aquí: http://new2wp.com/snippet/change-wordpress-posts-post-type-news/ y eso me ha ayudado a resolverlo muy rápido - ¡gracias por tu ayuda!

Evie Milo Evie Milo
28 abr 2011 18:24:09

@Evie Milo - deberías marcar la respuesta como aceptada.

kaiser kaiser
29 abr 2011 02:54:37