Los que, como yo, llegamos a WordPress desde otros CMS echamos mucho en falta una funcionalidad básica: no tenemos la opción de duplicar páginas, entradas y otros elementos del contenido.
¿Para qué necesitamos esta opción? Supongamos que estamos trabajando para un cliente y queremos mostrarle diferentes versiones de una página, o que queremos hacer un Test A-B de una landing page o un formulario, o que en nuestro blog tenemos una entrada con una disposicion que nos agrada del contenido (texto, imagenes, videos) y queremos replicar ese diseño que tanto nos ha costado. En esos casos nos alegraremos de tener una opción para duplicar ese contenido y luego modificarlo a nuestro gusto, sin necesidad de empezar desde cero.
Veamos como podemos acometer esta sencilla tarea:
Duplicar contenido con un plugin
Lo primero que nos viene a la cabeza es usar un plugin. Hay muchos en el repositorio oficial. Mi preferido es Duplicate Post. Lo descargamos, instalamos y lo activamos.
A partir de ese momento veremos dos opciones nuevas en la lista de páginas y entradas
Clonar - Crea y publica una copia del elemento seleccionado
Nuevo borrador - También crea una copia, pero no la publica directamente
Al utilizar cualquiera de las dos opciones pasamos a editar la nueva página o entrada y haremos las modificaciones pertinentes. Nuestro problema ya está solucionado.
Opciones de Duplicate Post
Aunque el plugin funciona desde el primer momento, veamos su opciones de configuración, que encontraremos en Ajustes => Duplicate Post
La pestaña Qué copiar nos permite seleccionar los elementos de la página o entrada que serán duplicados. También permite especificar la opciones de generación automática del titulo e incluso indicar que contenido personalizado no queremos clonar.
Una opción interesante es que podemos duplicar también las taxonomías (categorías y etiquetas), incluyendo las personalizadas, por ejemplo las categorías de producto, si usamos Woocomerce.
En Permisos, decidiremos que usuarios tendrán derecho a duplicar contenido. Por defecto administradores y editores.
Finalmente en Visualizacion decidiremos donde aparecerán los enlaces para clonar.
Como ya he indicado los valores por defecto son adecuados
Duplicar páginas y entradas desde PHP
Si somos de aquellos que intentamos no usar plugins, podemos obtener un resultado similar, incluyendo algunas líneas de código en functions.php. Es una buena ocasión para usar un tema hijo y asegurarnos que no perderemos esa funcionalidad con la siguiente actualización de nuestro tema.
Ver código PHP
Si queréis utilizar el código presentado, podeis descargar el archivo desde aquí. Solo teneis que añadir el contenido al functions.php de vuestro tema.
El código propuesto funciona tambien con entradas personalizadas, como podemos ver en la imagen siguiente donde lo utilizamos para duplicar propiedades en un tema hijo de Real Estate 7.
Conclusión
Hemos visto dos métodos para duplicar contenido en WordPress.
El primero es usando un plugin. La ventaja de este método es que podemos utilizarlo para cualquier tema y no requiere conocimientos de programación. Entre los numerosos plugins disponibles he seleccionado Duplicate post, es muy fácil de utilizar y en mi opinión merece un lugar entre las herramientas imprescindibles.
También hemos visto como implementar esta función directamente e incorporar esta funcionalidad en nuestros desarrollos, sin utilizar plugin.
Cada método tiene sus pros y sus contras, la decisión sobre cual utilizar dependerá de las necesidades de cada proyecto concreto.