Come creare un widget WordPress personalizzato (Guida passo per passo)

Come creare una guida personalizzata del widget di WordPress passo-passo

I widget di WordPress sono piccoli blocchi di contenuti che è possibile trascinare e rilasciare in barre laterali, piè di pagina, o aree widget personalizzate — perfetto per visualizzare i messaggi recenti, informazioni di contatto, link sociali, annunci, o messaggi personalizzati. Mentre WordPress include molti widget di default, la creazione del proprio widget personalizzato consente di aggiungere funzionalità uniche su misura per le esigenze del tuo sito o del tuo cliente (ad esempio, una scatola personalizzata “Aggiornamenti più recenti”, saluto personalizzato, o contenuto dinamico). Nel 2026, con l'editing completo e temi di blocco diventando standard, widget personalizzati rimangono un modo potente per estendere le barre laterali e le aree widget legacy.

A Cope Business, costruiamo widget personalizzati per i clienti durante il nostro servizi tecnici di audit SEO per migliorare l'esperienza dell'utente, aggiungere elementi di marca, e migliorare il coinvolgimento senza fare affidamento su plugin di terze parti pesanti.
Questa guida passo-passo vi mostra come creare un semplice widget WordPress personalizzato da zero — nessun plugin richiesto. Costruiremo uno che visualizza un messaggio personalizzato con un titolo e un link facoltativo. È possibile espanderlo più tardi per funzioni più avanzate.

Perché creare un widget WordPress personalizzato?

  • Funzionalità unica — Aggiungi esattamente ciò di cui hai bisogno (senza bloat da plugin di terze parti)
  • Controllo completo — Stile e comportarsi esattamente come si desidera
  • Leggero — Nessun plugin extra overhead → sito più veloce
  • Riutilizzabile — Utilizzarlo su più siti o progetti client
  • Opportunità di apprendimento — Ottimo modo per capire lo sviluppo di WordPress

Prerequisiti

  • Un sito locale/staging WordPress (test sicuro!)
  • Conoscenza PHP di base ( spiegheremo ogni riga)
  • Un tema bambino (consigliato) o una cartella plugin personalizzata
  • Accesso a wp-content (tramite FTP o hosting file manager)

Step-by-Step: Creazione del tuo primo widget personalizzato

Passo 1: Creare un Plugin personalizzato (Safest & Portable)

E 'meglio creare un piccolo plugin che aggiungere codice a funzioni.php (sorves modifiche tema).

  1. In /wp-content/plugins/, creare una nuova cartella:
  2. All'interno, creare un file: far-custom-widget.php
  3. Aggiungi questa intestazione:

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
 */

Fase 2: Registra la classe Widget

Aggiungi questo codice sotto l'intestazione:

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;
    }
}

Passo 3: Registrare il Widget

Aggiungi questo in basso:

PHP

function cope_register_custom_widget() {
    register_widget( 'Cope_Custom_Widget' );
}
add_action( 'widgets_init', 'cope_register_custom_widget' );

Passo 4: Attiva e prova

  1. Salva il file.
  2. Vai a Plugin → Attivare “Cope Custom Widget”.
  3. Vai a Aspetto > Widgets → Trascina “Cope Custom Message Widget” su una barra laterale.
  4. Compila il titolo, il messaggio e il link opzionale → Salva.
  5. Visita il tuo sito — appare il widget personalizzato!

Punti positivi: Controllo completo, nessun plugin extra, riutilizzabile.
Punti negativi: Richiede PHP di base; prova sulla messa in scena prima.

Metodo 2: Utilizzo di un Plugin (Faster for Non-Coders)

Se la codifica si sente schiacciante, utilizzare un plugin.

Plugin consigliato: Opzioni Widget (Free/Pro) o SiteOrigin Widgets Bundle

  1. Installazione Opzioni Widget (gratuito).
  2. Vai a Aspetto > Widgets.
  3. Aggiungi qualsiasi widget (Testo, HTML personalizzato, ecc.).
  4. Utilizzare opzioni Widget per stile, allineare, o aggiungere lezioni personalizzate.
  5. Per i widget avanzati: Install SitoOrigin Widgets Bundle (gratuito) → utilizzare widget pre-costruiti o creare quelli personalizzati.

Punti positivi: Nessun codice, controlli visivi, facile.
Punti negativi: Meno flessibile del codice personalizzato.

Migliori Pratiche per Widget personalizzati

  • Utilizzare sempre un tema bambino o plugin personalizzato — mai modificare file tema direttamente.
  • Smaltire tutti gli input (fatto nel codice di esempio).
  • Prova su mobile — garantire widget sembra buono in barre laterali.
  • Tenere leggero — evitare pesanti query all'interno di widget.
  • Aggiungi CSS per lo styling (Apparenza > Personalizza > CSS addizionale).

Pensieri finali

Creare un widget WordPress personalizzato è un ottimo modo per aggiungere funzionalità uniche senza fare affidamento su plugin di terze parti pesanti. Iniziare con l'esempio di codice sopra — è semplice, sicuro e espandibile.

I widget personalizzati ti danno il pieno controllo e mantengono il tuo sito inclinato.

Hai bisogno di aiuto costruire widget personalizzati, ottimizzare la barra laterale, o migliorare le prestazioni del sito? Contatto Cope Business per una consulenza tecnica gratuita SEO — creeremo soluzioni su misura per migliorare il vostro sito WordPress esattamente il modo desiderato.

Questo articolo è stato utile?
No