• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
  • Acceder
    • Mis cursos
    • Mi Cuenta
    • Acceder
Inicio / Tutoriales / Core / Crear entradas con la REST API de WordPress desde un sitio web remoto

Crear entradas con la REST API de WordPress desde un sitio web remoto

[ hace 2 meses ] [ Autor: Jhon Marreros Guzmán ][ Core - Avanzado] [ ]

funcionalidad

Suscríbete a DecodeCMS:  

En un artículo anterior ya habíamos visto como trabajar con la REST API de WordPress, sin embargo en este artículo veremos en detalle cómo crear entradas desde otro sitio web, además usaremos la autenticación integrada y funciones propias de WordPress.

 

Autenticación en la REST API de WordPress

A partir de la version 5.6 de WordPress tienes integrada la funcionalidad de contraseña de aplicación, que servirá para que aplicaciones externas se conecten a tu sitio usando la REST API de WordPress.

Para tu usuario actual, puedes hacerlo desde el menú: Usuarios > Perfil, luego colocar algún nombre descriptivo para la contraseña:

Creación contraseña de aplicación

 
Una vez creada aparecerá la contraseña, la cual debes copiar ya que la usaremos en el código.

Contraseña de apliación creada

 
Las contraseñas de aplicación requiere HTTPs, por lo que si estas trabajando en tu máquina local tienes que agregar adicionalmente esta constante en el archivo wp-config.php para que pueda funcionar.

define( 'WP_ENVIRONMENT_TYPE', 'local' );

 

Código para crear entradas usando la REST API con autenticación

Con las credenciales creadas en el sitio remoto, puedes usar entonces el siguiente código en el sitio web de origen:

<?php
$login    		= 'admin';
$password 		= 'MNEt Fz3F 9kwK j1fg 9qQo EUj0';
$remote_site 	= 'http://wordpress-remoto.local/wp-json/wp/v2/posts';

$request = wp_remote_post(
	$remote_site,
	[
		'headers' => [ 'Authorization' => 'Basic ' . base64_encode( "$login:$password" ) ],
		'body'    => [
			'title'      => 'Entrada creada con la API',
			'content'    => 'Contenido de ejemplo',
			'status'     => 'draft',
			'meta'       => [
				'nivel' => 'Avanzado',
				'relacionados' => '1,2,3'
			]
		]
	]
);

if ( 'Created' !== wp_remote_retrieve_response_message( $request ) ) {
	error_log('No se ha podido crear', true);
}

 

Para ver una lista completa de los valores que se pueden pasar al crear la entrada puedes revisar la documentación del Schema Post
  • Para agregar las categorías se puede pasar un array con los IDs de las categorías, lógicamente deben ya existir en el sitio remoto
  • Para agregar los tags se puede pasar un array con los IDs, lógicamente deben ya existir en el sitio remoto
  • Para agregar un autor específico se puede pasar el ID del autor y debe existir en el sitio remoto
  • En el caso de la metadata de la entrada, será necesario registrarlos en el sitio web remoto con el siguiente código:
    <?php
    add_action('rest_api_init', function () {
        $metas = [
            "nivel",
            "relacionados",
        ];
    
        foreach ($metas as $meta) {
            register_meta(
                'post',
                $meta,
                [
                    'type' => 'string',
                    'single' => true,
                    'show_in_rest' => true
                ]
            );
        }
    });
    
    Si quieres agregar metadatos privados, posiblemente tengas que crear un endpoint para manipularlos

 
Al final obtendremos algo similar a la siguiente imagen:

Entrada creada resultado final

 

Conclusión

Como has podido comprobar, puedes agregar contenido desde otro sitio web remoto usando la REST API de WordPress, en este artículo hemos visto un ejemplo práctico de cómo realizar esto y usando la autenticación integrada de contraseñas de aplicación en WordPress.

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Agregar endpoints a la API REST de WordPressAgregar endpoints a la API REST de WordPress
  • Post Meta desde la API de WordPressPost Meta desde la API de WordPress
  • REST API WoocommerceCómo usar la REST API de WooCommerce
  • REST API en WordPressCómo usar la REST API de WordPress
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (1 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral principal

Curso Decodifica WordPress

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
¿Quieres agregar código a WordPress? Revisa las diferentes opciones que tienes.Ver más

Omnisend
Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad SEO social woocommerce

Populares

Mostrar datos desde una tabla personalizada de la base de datos de WordPress

Deshabilitar Gutenberg en WordPress selectivamente

Cambiar el logo en cabecera fija en un tema WordPress

Logout menú en Easy Digital Downloads

© logo decode pie
Política de Privacidad | Política de devoluciones
Copyrigth 2023 Todos los derechos reservados