This is the technical support forum for WPML - the multilingual WordPress plugin.

Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.

This thread is resolved. Here is a description of the problem and solution.

Problema: Al traducir custom post types y configurar idiomas por dominio, produce que el acceso a algunas traducciones devuelva un error 404 o 302. Solución: Cerciorarse de que se dispone de la última versión de los plugins de WPML. Los enlaces permanentes o permalinks pueden habrse corrompido. Una posible solución se explica en el siguiente enlace: https://www.000webhost.com/blog/fix-not-working-permalinks-in-wordpress/#reset-your-permalinks

Tagged: 

This topic contains 48 replies, has 3 voices.

Last updated by Oscar Miras 5 months ago.

Assigned support staff: Oscar Miras.

Author Posts
April 8, 2019 at 9:21 pm #3561423

sandraS-16

Estoy intentando acceder a páginas privadas creadas con un custom post type. En el idioma original (hidden link) se puede acceder, pero al generar una traducción (hidden link) pero te redirige a una 404.

He hecho pruebas con páginas por defecto de wordpress y se puede acceder, tanto privadas como públicas. Por lo que el problema entiendo es los custom post types.

No utilizo ningún plugin, es custom:

private function create_cpt_args($name) {
        $labels = array(
            'name'                => _x($name . ' Pages', 'Post Type General Name', self::NAMESPACE),
            'singular_name'       => _x($name . ' Page', 'Post Type Singular Name', self::NAMESPACE),
            'menu_name'           => __($name . ' Pages', self::NAMESPACE),
            'parent_item_colon'   => __('Parent ' . $name . ' Page', self::NAMESPACE),
            'all_items'           => __('All ' . $name . ' Pages', self::NAMESPACE),
            'view_item'           => __('View ' . $name . ' Page', self::NAMESPACE),
            'add_new_item'        => __('Add New ' . $name . ' Page', self::NAMESPACE),
            'add_new'             => __('Add New', self::NAMESPACE),
            'edit_item'           => __('Edit ' . $name . ' Page', self::NAMESPACE),
            'update_item'         => __('Update ' . $name . ' Page', self::NAMESPACE),
            'search_items'        => __('Search ' . $name . ' Page', self::NAMESPACE),
            'not_found'           => __('Not Found', self::NAMESPACE),
            'not_found_in_trash'  => __('Not found in Trash', self::NAMESPACE),
        );

        return array(
            'label'               => __(strtolower($name), self::NAMESPACE),
            'description'         => __($name . ' Page for RCC Web Agents', self::NAMESPACE),
            'labels'              => $labels,
            'supports'            => array('title', 'editor', 'revisions', 'author', 'excerpt', 'page-attributes', 'thumbnail', 'custom-fields', 'comments'),
            'taxonomies'          => array(),

            /**
             * A hierarchical CPT is like Pages and can have Parent and child
             * items. A non-hierarchical CPT is like Posts.
             */
            'hierarchical'        => true,
            'public'              => true,
            'show_ui'             => true,
            'show_in_menu'        => true,
            'show_in_nav_menus'   => true,
            'show_in_rest'        => true,
            'show_in_admin_bar'   => true,
            'menu_icon'           => 'dashicons-palmtree',
            'menu_position'       => 5,
            'can_export'          => true,
            'has_archive'         => true,
            'exclude_from_search' => false,
            'publicly_queryable'  => true,
            'capability_type'     => 'page',
        );
    }

Los plugins que utilizo actualmente están en el adjunto.

Gracias de antemano

April 9, 2019 at 5:45 am #3563153

Andrés
Supporter

Languages: English (English ) Spanish (Español ) French (Français )

Timezone: Europe/Paris (GMT+02:00)

Hola,

Bienvenida al soporte de WPML.

Actualmente no tenemos reportes similares al tuya. Por esta razón he creado un sitio de pruebas para ti. Puedes acceder a este simplemente haciendo click en en siguiente enlace:
hidden link

La idea es que agregues tu CPT y nos ayudes a reproducir el problema. De esta manera, podremos aislar el problema y analizarlo.


No tienes que recrear tu sitio, simplemente instalar tu CPT para reproducir el problema.

Un saludo,
Andrés

April 9, 2019 at 7:59 pm #3570471

sandraS-16

Hola Andrés,

Gracias por la respuesta. No puedo crear los CPT desde el panel de administración porque los genero desde `functions.php`

Básicamente lo que pasé era la función (dentro de una clase) para generar los 3 CPT que necesita la web, posteo el código completo. Lo que me genera son los 3 CPT para Royal, Celebrity y Azamara. Por defecto privados.

Si me dices cómo puedo ayudar para implementarlo en el sandbox lo subo.

Gracias

<?php
function create_cpt_args($name) {
    $labels = array(
        'name'                => _x($name . ' Pages', 'Post Type General Name', 'tribrand'),
        'singular_name'       => _x($name . ' Page', 'Post Type Singular Name', 'tribrand'),
        'menu_name'           => __($name . ' Pages', 'tribrand'),
        'parent_item_colon'   => __('Parent ' . $name . ' Page', 'tribrand'),
        'all_items'           => __('All ' . $name . ' Pages', 'tribrand'),
        'view_item'           => __('View ' . $name . ' Page', 'tribrand'),
        'add_new_item'        => __('Add New ' . $name . ' Page', 'tribrand'),
        'add_new'             => __('Add New', 'tribrand'),
        'edit_item'           => __('Edit ' . $name . ' Page', 'tribrand'),
        'update_item'         => __('Update ' . $name . ' Page', 'tribrand'),
        'search_items'        => __('Search ' . $name . ' Page', 'tribrand'),
        'not_found'           => __('Not Found', 'tribrand'),
        'not_found_in_trash'  => __('Not found in Trash', 'tribrand'),
    );

    return array(
        'label'               => __(strtolower($name), 'tribrand'),
        'description'         => __($name . ' Page for RCC Web Agents', 'tribrand'),
        'labels'              => $labels,
        'supports'            => array('title', 'editor', 'revisions', 'author', 'excerpt', 'page-attributes', 'thumbnail', 'custom-fields', 'comments'),
        'taxonomies'          => array(),
        'hierarchical'        => true,
        'public'              => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'show_in_nav_menus'   => true,
        'show_in_rest'        => true,
        'show_in_admin_bar'   => true,
        'menu_icon'           => 'dashicons-palmtree',
        'menu_position'       => 5,
        'can_export'          => true,
        'has_archive'         => true,
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'capability_type'     => 'page',
    );
}

function register_post_types() {
    $rccl = $this->create_cpt_args('Royal');
    $cel = $this->create_cpt_args('Celebrity');
    $aza = $this->create_cpt_args('Azamara');

    register_post_type('rccl', $rccl );
    register_post_type('cel', $cel );
    register_post_type('aza', $aza );
}

add_action('init', 'register_post_types');
April 10, 2019 at 5:43 am #3572591

Andrés
Supporter

Languages: English (English ) Spanish (Español ) French (Français )

Timezone: Europe/Paris (GMT+02:00)

Hola,

En el sitio de prueba encontrarás una sección Sandbox donde puedes acceder al SFTP, de esta manera podrás modificar tu functions.php. Por otra parte, y para simplificar el ejercicio, ¿podrías intentar cargar solo un CPT? De esta manera nos podemos enfocar directamente en lo que sucede.

Gracias por tu ayuda.
Saludos

April 10, 2019 at 7:49 pm #3580999

sandraS-16

Hola,

He añadido el CPT y creado una página, pero no me permite modificar los idiomas por dominio. Me pone que no es válido y no puedo reproducir el funcionamiento

April 11, 2019 at 8:48 am #3585277

Andrés
Supporter

Languages: English (English ) Spanish (Español ) French (Français )

Timezone: Europe/Paris (GMT+02:00)

Gracias por compartir tus hallazgos. En ese caso, ¿podrías probar temporalmente en tu sitio de prueba y cambiar el formato de URL por repertorios por idioma? Esto nos permitirá entender si el problema está ligado a este ajuste o a tu sitio.

Saludos

April 11, 2019 at 4:25 pm #3590505

sandraS-16

La verdad es que no me estáis ayudando mucho.

Pensaba que el soporte técnico sería más eficiente para poder ayudarme a resolver los problemas técnicos. El paquete que tenemos contratado no es barato y creo que vuestro equipo debería intentar ayudar a reproducirlo para encontrar una solución en lugar de dar "directrices".
Creo que os he proporcionado suficiente información para encontrar la solución. Si fuese un proyecto Open Source lo entendería, pero no lo es.

April 12, 2019 at 5:24 am #3594979

Andrés
Supporter

Languages: English (English ) Spanish (Español ) French (Français )

Timezone: Europe/Paris (GMT+02:00)

Entiendo tu frustración, sin embargo, como se trata de un Custom Post Type que has creado con código personalizado, nuestro soporte se encuentra limitado ya que se puede tratar a problemas en tu código y, esto no entra dentro del soporte.

Como hemos visto, en nuestro sitio de pruebas todo funciona correctamente. Ahora bien, el problema puede estar ligado a tu configuración o al uso de idiomas por dominio. Por mi parte, no he podido replicar esto último, pero para estar seguro sería de gran ayuda si haces la prueba en tu sitio de prueba. ¿me podrías decir que hallaste al realizar la última prueba?

April 12, 2019 at 5:28 am #3594989

Andrés
Supporter

Languages: English (English ) Spanish (Español ) French (Français )

Timezone: Europe/Paris (GMT+02:00)

Si así lo deseas, también puedo efectuar directamente la prueba en tus sitio de test. ¿Me podrías dar las credenciales de tu sitio web de prueba, de esta manera podemos dar un vistazo a tus ajustes, así como los pasos necesarios para reproducir este comportamiento?

Para esto, debes poder ver una forma protegida en la parte inferior de este tópico. (Te pide hacer un backup y un + Aviso legal). Una instalación de test es preferible y nos haría mucho más fácil hacer una evaluación. En cuanto tenga más información te lo haré saber

Importante: Haz un backup completo de tu sitio. Puedes usar un plugin como Duplicator para este propósito. Mira en: http://wordpress.org/plugins/duplicator/

Si no ves este formulario para completar los campos confidenciales NO los publiques, ya que serán visibles en el foro:
hidden link

Privacidad y seguridad al proporcionar información de Debug para soporte:
https://wpml.org/purchase/support-policy/privacy-and-security-when-providing-debug-information-for-support/

April 15, 2019 at 8:05 pm #3616271

sandraS-16

Hola, gracias por la información.
Antes de continuar, he visto que el problema ocurre cuando tengo páginas con el mismo nombre. En las que puedo acceder al dominio principal, pero no a las traducciones, por ejemplo:

- miweb.es/category/home
- miweb.fr/category/home

Pero si utilizo un nombre de página distinto, no hay problema.
Gracias

April 16, 2019 at 2:14 pm #3622873

Oscar Miras

Hola,

Soy Óscar y seguiré con tu caso, pues Andrés se encuentra en actualmente de vacaciones.

Veo que mi compañero te ha pedido el archivo duplicator para poder investigar mejor el problema.

Alternativamente, te voy a pedir acceso temporal a tu página Web por el mismo motivo.

Por favor, crea unas credenciales con suficientes privilegios para poder acceder a tu instalación WordPress como administrador. Antes de proporcionarme dichas credenciales, asegúrate de tener una copia de seguridad de tu sitio Web.

También te voy a pedir acceso temporal FTP para poder comprobar algunos archivos de configuración. Encontrarás una sección para proporcionar dichos datos junto a mi respuesta.

Me gustaría comentarte que también tenemos documentación detallada de como hacer traducibles los custom post types. Por favor, asegúrate que has seguido la metodología recomendada por WPML: https://wpml.org/faq/how-to-translate-custom-types/

Otra prueba que me gustaría que realizaras es saber si los idiomas por directorios funcionan para los custom post type. Para cambiar el formato, ve a WPML > Languages. En "Language URL format" selecciona "Different languages in directories" y seguidamente guarda los Permalinks.. No hace falta recrear la traducción, tan solo ver si ahora puedes acceder a la traducción del custom post type.

Muchas gracias por tu colaboración.

Un saludo,
Óscar.

April 25, 2019 at 9:20 am #3680423

Oscar Miras

Hola,

Gracias por los datos de acceso.

Quisiera asegurarme con vosotros que este sitio Web es un sitio de prueba y tengo permiso para llevar a cabo algunas operaciones. Es posible que tenga que modificar algunos archivos o ejecutar algunas operaciones, así como instalar algún plugin.

Confirmadme si esto es así antes de proceder, por favor.

Muchas gracias,
Óscar.

April 26, 2019 at 10:36 am #3689857

sandraS-16

Hola,

Si es de pruebas y si tienes acceso y permiso para hacer las modificaciones necesarias.

April 29, 2019 at 2:34 pm #3704447

Oscar Miras

Hola,

He podido acceder a la Web sin problemas, muchas gracias.
Te comento que estoy comentando el caso con el equipo de segundo nivel.
Efectivamente, parece que existe una limitación para los custom post types; los cuales no pueden tener el mismo "slug" en la versión del idioma por defecto y en las versiones traducidas.

Dame un poco de tiempo para obtener una respuesta del equipo y te comento los hallazgos, y si existe, un posible workaround.

Gracias por tu paciencia.
Óscar.

April 30, 2019 at 7:36 pm #3714615

sandraS-16

Gracias