Attivazione Predefinita dei Widget nello Sviluppo di Temi Personalizzati

17 set 2010, 19:38:45
Visualizzazioni: 1.37K
Voti: 3

Nello sviluppo di temi per WordPress, se una sidebar non è attiva, posso attivarla? Inoltre, se la sidebar è attiva ma non contiene widget, posso aggiungerne alcuni?

Sono uno sviluppatore di temi e plugin, ma questa è una cosa che non ho ancora imparato a fare.

0
Tutte le risposte alla domanda 1
2

@Volomike,

Quando registri una sidebar nelle funzioni del tuo tema, sarà attiva nella dashboard. Se nessun widget viene aggiunto alle tue sidebar, WordPress aggiungerà i widget predefiniti. Puoi impedire a WordPress di aggiungere i widget predefiniti deregistrandoli:

// Rimuovi i Widget predefiniti di WP
    // Funzione per WP 2.8 che utilizza $widget_class
    if (function_exists('unregister_widget')) {
        unregister_widget('WP_Widget_Meta');
        unregister_widget('WP_Widget_Search');
        unregister_widget('');

    // Funzione per versioni precedenti a WP 2.8 che utilizza $id
    } else {
        unregister_widget_control('meta');
        unregister_widget_control('search');
    }

Puoi anche preimpostare i tuoi widget.

// Il seguente codice è tratto da The Thematic Theme, con licenza GPLv2

    register_sidebar_widget(__('Cerca', 'thematic'), 'widget_thematic_search', null, 'search');
    unregister_widget_control('search');
    register_sidebar_widget(__('Meta', 'thematic'), 'widget_thematic_meta', null, 'meta');
    unregister_widget_control('meta');
    register_sidebar_widget(array(__('Link RSS', 'thematic'), 'widgets'), 'widget_thematic_rsslinks');
    register_widget_control(array(__('Link RSS', 'thematic'), 'widgets'), 'widget_thematic_rsslinks_control', 300, 90);

    // Widget preimpostati
    $preset_widgets = array (
        'primary-aside'  => array( 'search', 'pages', 'categories', 'archives' ),
        'secondary-aside'  => array( 'links', 'rss-links', 'meta' )
        );

    if ( isset( $_GET['activated'] ) ) {
        update_option( 'sidebars_widgets', apply_filters('thematic_preset_widgets',$preset_widgets ));
    }

Thematic è in realtà un ottimo esempio di tutto ciò che può essere fatto con i widget. Dai un'occhiata a widgets.php e widgets-extensions.php

18 set 2010 02:53:51
Commenti

Thematic può essere un po' grezzo e ignorare completamente molte funzionalità integrate di WordPress. Questo potrebbe essere per compatibilità con le versioni precedenti, ma prima o poi bisogna tagliare il cordone. Invece di controllare $_GET['activated'], utilizza l'API integrata e usa l'azione switch_theme per testare i widget installati e apportare le modifiche necessarie.

Gipetto Gipetto
18 set 2010 06:54:16