Los widgets de WordPress son pequeños bloques de contenido que puede arrastrar y caer en barras laterales, pies o áreas de widget personalizadas — perfecto para mostrar publicaciones recientes, información de contacto, enlaces sociales, anuncios, o mensajes personalizados. Mientras que WordPress incluye muchos widgets predeterminados, la creación de su propio widget personalizado le permite añadir características únicas adaptadas a sus necesidades del sitio o cliente (por ejemplo, una caja de actualizaciones personalizadas, saludo personalizado o contenido dinámico). En 2026, con temas de edición y bloque completos que se convierten en estándar, los widgets personalizados siguen siendo una forma poderosa de extender barras laterales y áreas de widget heredadas.
En Cope Business, construimos widgets personalizados para clientes durante nuestro servicios técnicos de auditoría de la SEO para mejorar la experiencia de usuario, añadir elementos de marca, y mejorar el compromiso sin confiar en los plugins de terceros pesados.
Esta guía paso a paso le muestra cómo crear un widget de WordPress personalizado simple desde cero — no se requieren plugins. Construiremos uno que muestre un mensaje personalizado con un título y un enlace opcional. Puede ampliarlo más tarde para características más avanzadas.
En esta página
Toggle¿Por qué crear un Widget de WordPress personalizado?
- Función única — Añade exactamente lo que necesitas (sin hinchazón de plugins de terceros)
- Control completo - Estilo y comportarte exactamente como quieras
- Ligero — No hay plugin adicional de arriba → sitio más rápido
- Reutilizable — Úsalo en múltiples sitios o proyectos cliente
- Oportunidad de aprendizaje — Gran manera de entender el desarrollo de WordPress
Prerrequisitos
- Un sitio de WordPress local / estaging (prueba con seguridad!)
- Conocimiento básico de PHP (explicaremos cada línea)
- Un tema infantil (recomendado) o una carpeta de plugin personalizado
- Acceso a wp-content (via FTP o administrador de archivos de hosting)
Paso a paso: Creación de su primer Widget personalizado
Paso 1: Crear un plugin personalizado (Safest & Portable)
Es mejor crear un pequeño plugin que añadir código a funciones.php (sobrevive cambios temáticos).
- En /wp-content/plugins/, crear una nueva carpeta:
- Dentro, crea un archivo: cope-custom-widget.php
- Añadir este encabezado:
PHP
<?php
/**
* Plugin Name: Cope Custom Widget
* Plugin URI: https://www.copebusiness.com
* Description: Adds a simple custom widget to WordPress
* Version: 1.0
* Author: Cope Business
* Author URI: https://www.copebusiness.com
* License: GPL2
*/
Paso 2: Registrar la clase Widget
Añada este código debajo del encabezado:
PHP
class Cope_Custom_Widget extends WP_Widget {
// Constructor
public function __construct() {
parent::__construct(
'cope_custom_widget', // Base ID
'Cope Custom Message Widget', // Name shown in widget area
array( 'description' => 'Displays a custom message with optional link.' )
);
}
// Front-end display of widget
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 '<div class="cope-custom-message">';
echo ! empty( $instance['message'] ) ? esc_html( $instance['message'] ) : 'Add your custom message here.';
if ( ! empty( $instance['link_url'] ) && ! empty( $instance['link_text'] ) ) {
echo ' <a href="' . esc_url( $instance['link_url'] ) . '">' . esc_html( $instance['link_text'] ) . '</a>';
}
echo '</div>';
echo $args['after_widget'];
}
// Back-end widget form
public function form( $instance ) {
$title = ! empty( $instance['title'] ) ? $instance['title'] : 'Custom Message';
$message = ! empty( $instance['message'] ) ? $instance['message'] : '';
$link_url = ! empty( $instance['link_url'] ) ? $instance['link_url'] : '';
$link_text = ! empty( $instance['link_text'] ) ? $instance['link_text'] : 'Learn More';
?>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>">Title:</label>
<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>">
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'message' ) ); ?>">Message:</label>
<textarea class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'message' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'message' ) ); ?>" rows="5"><?php echo esc_textarea( $message ); ?></textarea>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'link_url' ) ); ?>">Link URL:</label>
<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'link_url' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'link_url' ) ); ?>" type="url" value="<?php echo esc_url( $link_url ); ?>">
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'link_text' ) ); ?>">Link Text:</label>
<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'link_text' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'link_text' ) ); ?>" type="text" value="<?php echo esc_attr( $link_text ); ?>">
</p>
<?php
}
// Update widget values
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? sanitize_text_field( $new_instance['title'] ) : '';
$instance['message'] = ( ! empty( $new_instance['message'] ) ) ? sanitize_textarea_field( $new_instance['message'] ) : '';
$instance['link_url'] = ( ! empty( $new_instance['link_url'] ) ) ? esc_url_raw( $new_instance['link_url'] ) : '';
$instance['link_text'] = ( ! empty( $new_instance['link_text'] ) ) ? sanitize_text_field( $new_instance['link_text'] ) : '';
return $instance;
}
}
Paso 3: Registrar el Widget
Añadir esto en el fondo:
PHP
function cope_register_custom_widget() {
register_widget( 'Cope_Custom_Widget' );
}
add_action( 'widgets_init', 'cope_register_custom_widget' );
Paso 4: Activar " Prueba
- Guarda el archivo.
- Ve Plugins → Activar “Cope Custom Widget”.
- Ve Apariencia > Widgets → Arrastre “Cope Custom Message Widget” a una barra lateral.
- Rellene el título, el mensaje y el enlace opcional → Guardar.
- Visite su sitio — aparece el widget personalizado!
Pros: Control completo, sin plugins adicionales, reutilizable.
Cons: Requiere PHP básico; prueba de puesta en escena primero.
Método 2: Usando un Plugin (Faster for Non-Coders)
Si la codificación se siente abrumadora, utilice un plugin.
Plugin recomendado: Opciones de Widget (Free/Pro) o SiteOrigin Widgets Bundle
- Instala Opciones de Widget (gratis).
- Ve Apariencia > Widgets.
- Añadir cualquier widget (Texto, HTML personalizado, etc.).
- Use Opciones de Widget para estilo, alinear o añadir clases personalizadas.
- Para widgets avanzados: Instalar SiteOrigin Widgets Bundle (gratis) → usar widgets preconstruidos o crear uno personalizado.
Pros: Sin código, controles visuales, fácil.
Cons: Menos flexible que el código personalizado.
Las mejores prácticas para los Widgets personalizados
- Utilice siempre un tema infantil o plugin personalizado — nunca editar archivos de tema directamente.
- Sanitize todas las entradas (hecho en el código de ejemplo).
- Prueba en el móvil: asegurar que el widget se vea bien en las barras laterales.
- Mantenerlo ligero — evitar consultas pesadas dentro de los widgets.
- Agregue CSS para el estilo (Aspecto > Personalizar > CSS adicional).
Pensamientos finales
Crear un widget personalizado de WordPress es una gran manera de añadir funcionalidad única sin confiar en los plugins de terceros pesados. Comience con el ejemplo de código anterior — es simple, seguro y expandible.
Los widgets personalizados le dan control completo y mantener su sitio inclinado.
¿Necesita ayuda para construir dispositivos personalizados, optimizar su barra lateral o mejorar el rendimiento del sitio? Contacto Cope Business para una consulta técnica SEO gratuita — vamos a crear soluciones personalizadas para mejorar su sitio de WordPress exactamente la manera que usted desea.




