• Saltar a la navegación principal
  • Saltar al contenido principal
Código Genesis

Código Genesis

Tutoriales de WordPress y Genesis Framework

  • Empieza aquí
  • Cuenta
    • Suscripción
    • Perfil
    • Actualizar tarjeta
    • Favoritos
    • Salir
  • Suscribirse
  • Acceder

Clonar una entrada a otra instalación de WordPress usando la API REST

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 1801 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_url = 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. 😉

PHP REST API WordPress

Nahuai Badiola

Desarrollador web especializado en WordPress y Genesis Framework. CEO de Código Genesis y cofundador de OsomPress (temas y plugins para WordPress).

Para dejar dudas o preguntas sobre este código, puedes login o suscribirte.

  • Empieza aquí
  • Sobre Código Genesis
  • Preguntas frecuentes
  • Contacto

Aviso legal · Política de privacidad · Política de cookies · Condiciones de contratación
Copyright © 2023 · Código Genesis

¿Has olvidado tu contraseña?