blog webempresa

¿Cómo importar y exportar widgets en WordPress entre diferentes instalaciones?

por | Jul 30, 2023 | Plugins WordPress

Imagen destacada - Cómo importar y exportar widgets en WordPress entre diferentes instalaciones

En ocasiones es posible que necesites importar y exportar widgets en WordPress entre diferentes instalaciones, para reducir tiempos de desarrollo, perdidas de configuraciones de widgets que utilices en otra instalación y funcionan bien, o sencillamente porque necesitas replicar un proyecto en una instalación nueva, sin tener que clonar la web, pero aprovechando algunas partes de la anterior web, como por ejemplo los widgets.

Si lo analizas bien, exportar e importar widgets entre sitios WordPress tiene múltiples beneficios. Por un lado, te permite ahorrar mucho tiempo al reutilizar configuraciones previamente realizadas en lugar de tener que crearlas desde cero. También facilita la migración de contenido, manteniendo consistencia visual entre sitios y permitiendo compartir diseños, sobre todo si te dedicas a la implementación de sitios WordPress para clientes finales.

Es una forma sencilla de hacer backup WordPress y poder recuperarlos en caso de pérdidas para el caso particular de sitios con muchos widgets personalizados.

Realizar la exportación e importación de widgets WordPress no supone tener que saber programar en PHP u otros lenguajes, por lo que cualquier usuario puede replicar configuraciones entre sitios de producción y testing en WordPress, reutilizar widgets personalizados, y estandarizar el diseño en redes multisitio WordPress.

Si quieres saber cómo puedes exportar o importar widgets de un sitio WordPress a otro, no lo dudes, sigue leyendo. 😉

  ¿Qué es un widget de WordPress?

 

Se trata de pequeños bloques de contenido que se pueden insertar en la barra lateral (sidebar) o en el pie de página (footer) de un sitio web, aunque algunos sitios también los incorporan en el top y la barra de navegación.

Los widgets permiten mostrar información dinámica y personalizable en el sitio sin necesidad de editar el código PHP o HTML de la web.

Son elementos reutilizables que se pueden arrastrar y soltar en las áreas widgetizadas del tema de WordPress. Cada widget proporciona una interfaz en el escritorio de WordPress para configurar qué se mostrará.

Es posible gestionarlos en sitios con el editor clásico de WordPress, desde Personalizar ➜ Widgets.

Gestión de widgets en WordPress con el editor clásico

O se pueden gestionar en un sitio WordPress que utilice el editor de bloques Gutenberg utilizando bloques de widgets específicos.

Gestión de widgets en WordPress con el editor de bloques Gutenberg

Los widgets más comunes son:

  • Widgets de texto: para mostrar texto personalizado, como un saludo o descripción corta.
  • Widgets de búsqueda: para insertar un cuadro de búsqueda en el sitio web.
  • Widgets de categorías: para mostrar una lista de categorías del Blog.
  • Widgets de páginas: para enlazar a páginas estáticas de la web.
  • Widgets RSS: Mostrar o enlazar a fuentes feeds RSS del sitio o externas.
  • Widgets de calendario: para mostrar un calendario con las publicaciones del sitio web.
  • Widgets de redes sociales: para mostrar iconos y enlaces a perfiles sociales.

A nivel técnico, los widgets de WordPress son clases PHP que extienden la clase base wp_widget.

Por ejemplo, un widget básico a nivel código, se vería así:

class MiWidget extends WP_Widget {

  public function __construct() {
    parent::__construct(
      'mi_widget', 
      'Mi Widget', 
      array( 'description' => 'Un widget de ejemplo' ) 
    );
  }

  public function widget( $args, $instance ) {
    echo $args['before_widget'];
    if ( ! empty( $instance['title'] ) ) {
      echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
    }
    echo 'Contenido del widget';
    echo $args['after_widget'];
  }

  public function form( $instance ) {
    $title = ! empty( $instance['title'] ) ? $instance['title'] : '';
    ?>
    <p>
      <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Título:' ); ?></label> 
      <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>">
    </p>
    <?php
  }

  public function update( $new_instance, $old_instance ) {
    $instance = array();
    if ( !empty( $new_instance['title'] ) ) {
      $instance['title'] = strip_tags( $new_instance['title'] );
    }
    return $instance;
  }

}

// registrar el widget
function registrar_mi_widget() {
  register_widget( 'MiWidget' );
}
add_action( 'widgets_init', 'registrar_mi_widget');

Este código básico registra el widget, permite configurar un título, y muestra el título y contenido estático en el frontal de la web. Los widgets más avanzados añadirían opciones de configuración, contenido dinámico de la base de datos, etc.

Normalmente los widgets se configuran e invocan a través de la API de widgets de WordPress.

  ¿Cómo exportar Widgets en WordPress?

 

Realizar la exportación de widgets en WordPress es un proceso sencillo si se utiliza un plugin para ello, aunque existen otras formas de hacerlo, por supuesto, más complejas para usuarios sin conocimientos más avanzados de WordPress.

Teniendo en cuenta que los widgets se almacenan en la tabla wp_options de la base de datos de WordPress, es posible acceder a la misma y copiar manualmente las opciones de los widgets, pegarlas en un archivo de formato JSON.

También se puede crear un script PHP utilizando las funciones que WordPress tiene para registrar y renderizar widgets. Puedes crear un script PHP WordPress que itere por los widgets activos, recolecte su configuración y los exporte a un archivo JSON.

Otra forma sería por medio de la línea de comandos, ya que usando WP-CLI en WordPress se pueden exportar widgets con el comando wp widget export. Este tipo de acciones requiere acceso por SSH al Hosting donde se encuentre instalado el sitio WordPress.

Hay algunos Temas WordPress que incluyen funciones de exportación de widgets en el archivo functions.php. Esto permite guardar los widgets en el tema.

Existen plugins de copia de seguridad que a veces permiten exportar todos los widgets junto con los archivos y base de datos.

Exportar widgets con estos métodos no es tan directo como usar un plugin, pero sabiendo algo de código es posible realizar estas acciones plugins aunque requiere más conocimiento técnico.

  ¿Cómo importar Widgets en WordPress?

 

La mayoría de opciones explicadas en el punto anterior son aplicables también para la importación de widgets, aunque dependen del método de exportación utilizado.

Si utilizas la línea de comandos para importar widgets previamente exportados por este medio, vía WP-CLI, luego los puedes importar usando el comando wp widget import.

Ten en cuenta que la herramienta de importación nativa de WordPress no se puede utilizar para importar o exportar widgets WordPress, ya que solo importa entradas, páginas, comentarios, campos personalizados, categorías y etiquetas del sitio web.

De la misma forma que el método más conveniente para exportar widgets es mediante un plugin, para importar widgets a otro sitio web, o al mismo, si se eliminaron previamente por alguna razón y se cuenta con un backup de los mismos, es utilizando un plugin, de preferencia el mismo con el que se exportaron, para garantizarse la compatibilidad del proceso.

  Importar y Exportar widgets de WordPress con un plugin

 

Para realizar la exportación o importación de widgets de WordPress puedes hacer uso de algunos plugins existentes, como es el caso de Widget Importer & Exporter, un plugin que da al usuario la posibilidad de exportar la configuración de sus widgets en formato de archivo JSON con extensión .wie. Por lo que es posible importar esa configuración a un sitio web en otro servidor o instalación diferente de WordPress.

La importación no sobrescribe datos en la instalación que recibe la importación, sino que se incrementarán los widgets y se añadirá una nueva instancia del widget en su lugar.

Plugin Widget Settings Importer/Exporter

Widget Importer & Exporter nació para ello, es un veterano plugin con más de 10 años de desarrollo, que te permite exportar tus widgets en formato JSON.

Posteriormente, en el nuevo sitio, puedes importarlos, en las mismas barras laterales del sitio anterior, tras instalar el plugin de nuevo. Cabe destacar que no elimina los widgets existentes en el nuevo sitio, sino que añade los que exportaste (es posible que si ya existen se dupliquen).

Una vez instalado, añade un ítem de menú dentro del menú de “Herramientas” de tu dashboard de WordPress. Dentro encuentras dos botones, uno para Importar widgets y otro para Exportar widgets.

Al hacer clic en la opción Exportar widgets se genera un archivo descargable en formato JSON con extensión wie que guardas en tu ordenador.

Exportar widgets con el plugin Widget Settings Importer/Exporter

En el sitio nuevo instalas el plugin y vas Herramientas ➜ Widget Importer & Exporter y eliges la opción subir archivo, lo seleccionas en tu ordenador y hacer clic en el botón Importar widgets.

Importar widgets con el plugin Widget Settings Importer/Exporter

Si en el sitio de WordPress al que importas los widgets, con el tema que uses, este no tiene las mismas barras laterales, no será posible importarlos, debes tenerlo muy en cuenta a la hora de realizar la importación y usar un tema con las mismas barras laterales o mejor usar el tema, sino el plugin no sabrá dónde colocar los widgets.

Una vez finalice la importación te mostrará los resultados en pantalla por cada widget importado al nuevo sitio y en rojo destacado los avisos de widgets no importados, cuya más posible causa será que no exista esa área de widgets en el Tema que estés utilizando en el sitio de destino de los widgets.

Log de resultados de importar widgets con el plugin Widget Settings Importer/Exporter

No pasa nada porque en estos casos los importarán y los dejará en el bloque de widgets inactivos, que luego podrás reubicar en el área de widgets existentes en tu Tema en uso.

Pero si el widget no es posible importarlo por problemas de compatibilidad, porque o bien no existe en la web de destino el plugin que los generó, te mostrará un aviso por cada widget no importado con el texto El sitio no es compatible con este widget.

Una vez finalice el proceso de importación, y tras analizar los resultados, puedes ir a Apariencia ➜ Widgets para comprobar que los que sí se han importado funcionan correctamente.

  Conclusiones

 

A la altura de evolución del CMS en la que se encuentra, es curioso que siga sin tener de forma nativa la opción de exportar o importar widgets en WordPress y que toque recurrir a plugins, o a otras vías menos factibles para realizar este tipo de acciones que aunque no son habituales, seguro que en alguna ocasión te has encontrado con esta carencia.

Es cierto que al final realizar la exportación y posterior importación de widgets en WordPress utilizando un plugin tiene muchas ventajas y que es un proceso sencillo y bastante rápido que no requiere saber programar.

Al utilizar un plugin para realizarlo puedes conservar intactas las configuraciones y apariencia de widgets entre diferentes sitios WordPress, siempre que existan las mismas áreas de widgets en el sitio WordPress de destino y que los que importes con el plugin encuentren el plugin que los generó en destino, igual que estaba en origen.

La simplicidad de uso del plugin ilustrado y su capacidad para replicar widgets hace que utilizarlo para exportar e importar estos widgets sea la mejor opción en la mayoría de casos.

¿Te ha resultado útil este artículo?

Promo abril