Descubre en este tutorial cómo clonar un post o entrada a otra de una instalación de WordPress usando la API REST.
En este tutorial vas a aprender cómo puedes usar la API REST para que cuando se cree una entrada en la web1, se genere otra igual en la web2.
Vamos a ver cómo conseguirlo:
Instrucciones para clonar entradas de una instalación de WordPress a otra usando la API REST
1. Crea una contraseña para la API REST
Lo primero que tienes que hacer es crear una nueva contraseña de aplicación en la instalación de WordPress donde quieres que se envíe el contenido (web2) de la entrada original (web1).
Para ello ve, en la web2, a Usuarios > Perfil y haz scroll hasta el apartado de «Contraseñas de aplicación».
A continuación rellena el campo de nombre de nueva contraseña (puede ser cualquiera) y pulsa en «Añadir una nueva contraseña de aplicación».
Una vez hecho, se mostrará el nombre de la contraseña y la contraseña. Asegúrate de copiarla y guardarla a buen recaudo porque no volverán mostrarse.
2. Envía el contenido y detalles de la entrada a otro WordPress usando la API REST
Para obtener la información sobre las últimas entradas vas a usar el endpoint de la API REST que te da acceso a esa información.
Añade el siguiente snippet al fichero functions.php o a tu plugin de funcionalidades de la web1:
Para ver este código y los otros 2055 snippets de esta web,
identifícate o suscríbete aquí.
Con este código usas el hook transition_post_status
con un condicional para que el contenido (y todos los datos que decidas) se envíen a la otra instalación de WordPress cuando se programe la fecha de publicación de la misma.
Pero esto lo puedes cambiar para que lo haga al publicarse, solo tendrías que cambiar $new_status == 'future'
por $new_status == 'publish'
.
En la primera parte del snippet defines las variables:
$username
= Nombre de usuario de WordPress.$password
= Contraseña de aplicación obtenida en el paso anterior.$website_url
= La URL de la web2.$request_ur
l = La URL donde se hace la petición. En este caso es la concatenación:$website_url . '/wp-json/wp/v2/posts/'
que accede al endpoint para las entradas de la API REST.
Acuérdate de cambiar el valor de las siguientes variables por las de tu caso.
A continuación usas la función wp_remote_request
para obtener el endpoint para entradas y con el método POST
pasas los datos de la entrada. En este caso:
'title'
= Título'status'
= Estado (en este caso borrador -‘draft-‘)'content'
= Contenido'date'
= Fecha
Pero puedes añadir más para personalizarlo a tu gusto. Estos son todos lo detalles que puedes enviar usando el método POST
al endpoint de entradas:
date
date_gmt
slug
status
password
title
content
author
excerpt
featured_media
comment_status
ping_status
formart
meta
sticky
template
categories
tags
Tienes más información al respecto en página oficial para desarrolladores de WordPress.
Si tienes alguna duda o sugerencia puedes dejarla en los comentarios.
Conclusiones
Ahora ya sabes cómo utilizar la API REST para clonar entradas de una instalación a otra de WordPress.
Si tienes alguna duda te leo en los comentarios. Y si quieres dejarme una sugerencia para futuros tutoriales, envíamela a través del formulario de contacto.
Todo ventajas de ser suscriptor. 😉