Seleccionar página

Activar Polylang en entradas personalizadas o Custom Post Types

por | Mar 9, 2016 | Wordpress

Activar Polylang en entradas personalizadas o Custom Post Types

Activar Polylang en entradas personalizadasSi tienes instalado el plugin de idiomas  Polylang en tu WordPress y trabajas con entradas personalizadas o Custom Post Types, es probable que dentro de la edición de Polylang no puedas habilitarlo para trabajar con tus nuevos tipos personalizados, no te preocupes, con una sencilla función lograrás que todos tus CPT (Tipos personalizados) se puedan editar a los distintos idiomas de la web y que Polylang los reconozca.

 

Pasos para habilitar Polylang en Custom Post Types

1.- Abre tu archivo functions.php y inserta el siguiente código.

add_filter('pll_get_post_types', 'mi_pll_con_custom_post_types');
function mi_pll_con_custom_post_types($types) {
    return array_merge($types, array('mientradapersonalizada1' => 'mientradapersonalizada1','mientradapersonalizada2' => 'mientradapersonalizada2'));
}

Donde pone mientradapersonalizada1 debes poner el nombre que has asignado a tu CPType.

Puedes escribir dentro del array tantos nombres de entradas personalizadas como hayas creado en tu web.

2.- Guarda los cambios y si es necesario sube el archivo mediante FTP de nuevo al servidor. Cuando entres de nuevo al backoffice de tu wordpress podrás ver que en la edición de entradas ya tienes habilitados los botones para poder traducir la entrada a los idiomas de la página.

Traducción de Custom Post Types con Polylang

Polylang con CPT

Recuerda que el archivo functions.php se encuentra ubicado dentro del tema de tu wordpress, la ruta es la siguiente:

wp_content/themes/tutema/functions.php

Si realizas los cambios directamente en el archivo de tu tema, cuando decidas actualizar el tema perderás los cambios, es mejor trabajar siempre con temas hijos.

Puedes encontrar información para crear temas hijos en la siguientes entradas de este blog:

  1. Plugins WordPress tema hijo 
  2. Cómo crear un tema hijo en WordPress

 

Los siguientes artículos del blog te pueden ayudar a crear nuevas páginas o templates para tu tema hijo:

Cómo crear diferentes páginas/templates en WordPress

Jerarquía de Plantillas WordPress

Cómo crear entradas personalizadas en WordPress

 

8 Comentarios

  1. Alonso

    En las Settings de Polylang hay una opcion: «Custom post types and Taxonomies», donde se puede seleccionar qué tipos de Post pueden ser Traducibles… sin código.

    Responder
  2. Franklin

    y si lo que quiero es quitar los ctp y solo dejar paginas y post?

    Responder
  3. Jordi

    Bravooo! Me acabas de salvar! Gracias!!!

    Responder
    • Lph by Nerea Liébana

      Muchas gracias Jordi

      Responder
  4. Alejandro Catalán

    Hola Nerea, acabo de leer tu post y hay algo que no acabo de entender.

    A ver, cuando dices «Donde pone mientradapersonalizada1 debes poner el nombre que has asignado a tu CPType.» Vale, reemplazo lo de «mientradapersonalizada1» por el nombre de mi entrada. Pero claro, si estoy haciendo una web con 2 idiomas, ¿como lo hago para que cuando el visitante lea la web en inglés, le salga el post en inglés y cuando la lea en castellano pueda leer el post en ese idioma?

    ¿Tendría que poner algo como… ?

    return array_merge($types, array(‘post_1_en_inglés’ => ‘post_1_en_castellano’,’post_2_en_inglés’ => ‘post_2_en_castellano’));

    Responder
    • Lph by Nerea Liébana

      Buenos días Alejandro, estás confundiendo los CPT con su contenido, el CPT es simplemente un tipo de publicación con unas características concretas, se crean una vez y contienen toda la información de ese tipo de entradas. Suponemos que has creado los siguientes CPT: miembro_asociado y miembro_principal, entonces en la función tienes que poner miembro_asociado => miembro_asociado, miembro_principal => miembro_principal. Es suficiente porque lo que estás haciendo es ordenar a Polylang que tenga en cuenta que ese tipo de entradas las quieres traducir a todos los lenguajes habilitados en la web.
      Espero que esto te sirva de ayuda, en cualquier caso si me necesitas por aquí estoy.
      Que tengas un feliz día

      Responder
  5. Daniel

    Hola Nerea,

    Fantástico el código! 🙂 Solo comentarte que hay un pequeño error de sintaxis falta una ‘ después de la segunda mientradapersonalizada1.

    Un saludo

    Responder
    • Lph by Nerea Liébana

      Muchas gracias Daniel, ya está solucionado. Aprovecho para felicitarte la Navidad

      Responder

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *