[Resuelto] Traducciones del custom post type en la pagina principal
Este hilo está resuelto. Aquí tienes una descripción del problema y la solución.
Problem: Si estás intentando traducir un custom post type llamado 'services' y no ves la opción de idiomas en el panel de control general, es probable que un plugin del tema esté sobrescribiendo las columnas de los listados sin utilizar las funciones normales de WordPress. Solution: Para resolver este problema, puedes agregar el siguiente código en el archivo
functions.php
de tu tema para restaurar la columna de idiomas de WPML:
Si esta solución no resuelve completamente tu problema o si la información proporcionada se ha vuelto obsoleta, te recomendamos abrir un nuevo ticket de soporte. También es aconsejable revisar los problemas conocidos y confirmar que tienes instaladas las últimas versiones de los temas y plugins. Si necesitas más ayuda, no dudes en contactarnos en nuestro foro de soporte.
Este es el foro de soporte técnico de WPML, el plugin multilingüe de WordPress.
Todas las personas pueden leerlo pero solo los clientes de WPML pueden ingresar comentarios. El equipo de WPML responde en los foros 6 días a la semana, 22 horas por día.
Quiero traducir los services. Es un custom post type enlace oculto
Pero en el panel de control general no me sale la opción de lenguages para traducir. Tengo que entrar dentro del servicio y traducirlo. He entrado a opciones de pantalla pero no me aparece la opción.
Quiero que se muestre el titulo y las banderas para traducir tipicas, como en las entradas. Como puedo mostrarlos?
Gracias
Hola,
Mi nombre es Carlos y continuaré trabajando en este ticket
1.- Para mostrar la columna de los idiomas debes activarla en 'Opciones de pantalla' que aparece arriba a la derecha de la primera captura de pantalla que compartiste en tu mensaje original.
1.- Te pido que compartas las credenciales de acceso al sitio en tu próximo mensaje, que he establecido como privado. Esto me permitirá reproducir el problema y revisar la configuración de WPML.
Confirma que has creado una copia de seguridad del sitio completo que puedas restaurar en caso de ser necesario.
2.- También te pido que describas cómo has creado el tipo de contenido 'Services'
Buenos días,
Muchas gracias por compartir la información solicitada.
La causa del problema es que uno de los plugins del tema, el que registra los tipos de contenido, sobrescribe las columnas de los listados en el área de administración sin utilizar las funciones normales de WordPress.
A modo de solución he agregado este código en el archivo functions.php que permite mostrar la columna de idiomas:
/**
* Restore WPML language columns for selected Custom Post Types.
*
* The theme/plugin replaces the complete admin columns array for some CPTs,
* removing WPML's language column in the process.
*
* Add or remove CPT slugs from $translatable_cpts as needed.
*/
function custom_restore_wpml_columns_for_theme_cpts() {
/*
* CPTs where the WPML language column should be displayed.
*
* Add or remove post type slugs from this array as needed.
*/
$translatable_cpts = array(
'services',
'projects',
'portfolio-items',
'staff-items',
'testimonials',
'footer',
'page-title',
// Add other CPTs if needed:
// 'footer',
// 'header-top',
// 'side-push-panel',
// 'megamenu',
// 'page-title',
);
foreach ( $translatable_cpts as $post_type ) {
add_filter(
'manage_edit-' . $post_type . '_columns',
'custom_restore_wpml_language_column',
999
);
}
}
add_action( 'init', 'custom_restore_wpml_columns_for_theme_cpts', 100 );
/**
* Restore WPML's native language column.
*/
function custom_restore_wpml_language_column( $columns ) {
// WPML must be active.
if (
! defined( 'ICL_SITEPRESS_VERSION' ) ||
! class_exists( 'WPML_Custom_Columns' )
) {
return $columns;
}
global $sitepress;
if ( ! $sitepress instanceof SitePress ) {
return $columns;
}
// Do not add the column twice.
if ( isset( $columns['icl_translations'] ) ) {
return $columns;
}
/*
* Let WPML generate its native language header,
* including the language flags.
*/
$wpml_columns = new WPML_Custom_Columns( $sitepress );
$flags_column = $wpml_columns->get_flags_column();
if ( ! $flags_column ) {
return $columns;
}
$new_columns = array();
foreach ( $columns as $key => $label ) {
$new_columns[ $key ] = $label;
/*
* Insert the WPML languages column immediately
* after the Title column.
*/
if ( 'title' === $key ) {
$new_columns['icl_translations'] = $flags_column;
}
}
return $new_columns;
}
Sin embargo, una solución final y duradera debe ser aportada por los autores del tema.