• 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

Mostrar un listado de los plugins de una instalación de WordPress usando la API REST

Descubre en este tutorial cómo obtener y mostrar todos los plugins de una instalación remota de WordPress usando la API REST.

Es posible que en algunos casos te interese mostrar (u obtener) todos los plugins de una instalación remota de WordPress, incluyendo la versión, el autor u otros datos.

Por eso en este tutorial vas a aprender cómo puedes obtener un listado de todos los plugins de una instalación remota de WordPress. Este sería el resultado:

Listado de plugins activos de una instalación WordPress

Vamos a verlo:

Pasos para mostrar todos los plugins de una instalación de WordPress 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.

Para ello ve (en la instalación de WordPress donde te quieres autenticar) 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. Obtén los datos del endpoint y muéstralos mediante un shortcode

Una vez tienes las credenciales para poder autenticarte con la API REST ya puedes hacer la llamada al endpoint para obtener los plugins.

Además, vas a encapsular estos datos dentro de un shortcode para poder mostrar el listado donde quieras.

Añade el siguiente snippet al fichero functions.php o a tu plugin de funcionalidades:

Para ver este código y los otros 1801 snippets de esta web,
identifícate o suscríbete aquí.

Con este código creas un shortcode que te permite mostrar un listado con todos los plugins de una instalación remota de WordPress usando el shortcode [plugin_list].

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 web.
  • $request_url = La URL donde se hace la petición. En este caso es la concatenación: $website_url . '/wp-json/wp/v2/plugins/' que accede al endpoint para plugins 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 plugins (con el método GET).

La parte de la autenticación se realiza en la cabecera (‘headers’) utilizando la función base64_encode para que cifre el usuario y contraseña.

Una vez que obtienes la información enviada por la API utilizas las funciones wp_remote_retrieve_body para extraer los datos del cuerpo y json_decode para decodificarla.

Y cuando tienes el array con los datos usas un bucle (foreach) para extraer la información que te interesa.

En este caso, 3 detalles sobre la información del plugin:

  • Nombre del plugin [name] > con enlace al mismo [plugin_uri]
  • Versión del plugin [version]
  • Nombre del autor [author] > con enlace al mismo [author_uri]

Pero puedes eliminar o añadir más para personalizarlo a tu gusto. Estos son todos lo detalles que puedes mostrar:

  • [plugin]
  • [status]
  • [name]
  • [plugin_uri]
  • [author]
  • [author_uri]
  • [description]
  • [version]
  • [network_only]
  • [requires_wp]
  • [requires_php]
  • [textdomain]
  • [_links]

Tienes más información al respecto en página oficial para desarrolladores de WordPress.

Por ejemplo, para el plugin de Akismet retorna algo así:

Array ( [0] => stdClass Object ( 
[plugin] => akismet/akismet 
[status] => active 
[name] => Akismet Anti-Spam 
[plugin_uri] => https://akismet.com/ 
[author] => Automattic 
[author_uri] => https://automattic.com/wordpress-plugins/ 
[description] => stdClass Object ( [raw] => Utilizado por millones, Akismet es, posiblemente, la mejor manera del mundo de proteger tu blog del spam. Mantiene tu blog protegido incluso cuando duermes. Para comenzar: activa el plugin Akismet y ve a la página de ajustes de Akismet para establecer tu clave de la API. [rendered] => Utilizado por millones, Akismet es, posiblemente, la mejor manera del mundo de proteger tu blog del spam. Mantiene tu blog protegido incluso cuando duermes. Para comenzar: activa el plugin Akismet y ve a la página de ajustes de Akismet para establecer tu clave de la API. By Automattic. ) 
[version] => 4.2.2 
[network_only] => 
[requires_wp] => 
[requires_php] => 
[textdomain] => akismet 
[_links] => stdClass Object ( [self] => Array ( [0] => stdClass Object ( [href] => https://tuweb.com/wp-json/wp/v2/plugins/akismet/akismet ) ) ) )

Así que puedes personalizar los detalles que prefieres que se muestren.

Si tienes alguna duda o sugerencia puedes dejarla en los comentarios.

Para poder ver el listado solo te queda un paso.

2. Introduce el shortcode donde quieras

La ventaja de los shortcodes es que puedes insertarlos en cualquier punto de la web.

Solo tendrás que escribir [plugin_list] donde quieres que se visualice.

Importante:

  • Si estás utilizando el editor clásico, utiliza la pestaña de HTML para introducir el shortcode.
  • En caso de que ya estés usando el nuevo editor de bloques (Gutenberg) puedes añadirlo al bloque normal de párrafo, el de HTML o el de shortcode. Todos ellos renderizarán de forma correcta el contenido.

Este sería un ejemplo del listado que mostraría el shortcode:

Listado de plugins activos de una instalación WordPress

Conclusiones

Ahora ya sabes cómo utilizar la API REST para obtener y mostrar todos los plugins de una instalación remota 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 Shortcode 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?