Cum să activezi implicit widget-urile în dezvoltarea de teme personalizate

17 sept. 2010, 19:38:45
Vizualizări: 1.37K
Voturi: 3

În crearea de teme WordPress, dacă o bară laterală nu este activă, pot să o activez? De asemenea, dacă bara laterală este activă, dar nu conține niciun widget, pot adăuga unele?

Sunt dezvoltator de teme și plugin-uri, dar acesta este un lucru pe care nu l-am învățat încă să fac.

0
Toate răspunsurile la întrebare 1
2

@Volomike,

Când înregistrezi o bară laterală în funcțiile temei tale, aceasta va fi activă în panoul de control. Dacă nu sunt adăugate widget-uri în barele tale laterale, WordPress va adăuga widget-urile implicite. Poți preveni WordPress să adauge widget-urile implicite prin dezînregistrarea lor:

// Elimină Widget-urile implicite din WP
    // Funcție WP 2.8 folosind $widget_class
    if (function_exists('unregister_widget')) {
        unregister_widget('WP_Widget_Meta');
        unregister_widget('WP_Widget_Search');
        unregister_widget('');

    // funcție pre WP 2.8 folosind $id
    } else {
        unregister_widget_control('meta');
        unregister_widget_control('search');
    }

De asemenea, poți preconfigura propriile widget-uri.

// Următorul exemplu de cod este din Thematic Theme, care este licențiat sub GPLv2

    register_sidebar_widget(__('Căutare', '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(__('Linkuri RSS', 'thematic'), 'widgets'), 'widget_thematic_rsslinks');
    register_widget_control(array(__('Linkuri RSS', 'thematic'), 'widgets'), 'widget_thematic_rsslinks_control', 300, 90);

    // Widget-uri preconfigurate
    $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 este de fapt un exemplu excelent al tuturor lucrurilor care pot fi făcute cu widget-uri. Aruncă o privire la widgets.php și widgets-extensions.php

18 sept. 2010 02:53:51
Comentarii

Thematic poate fi un pic cam brut și poate ignora complet multe funcționalități încorporate în WordPress. Acest lucru poate fi pentru compatibilitate înapoi, dar la un moment dat trebuie să tai legătura. În loc să verifici $_GET['activated'], folosește API-ul încorporat și acțiunea switch_theme pentru a testa widget-urile instalate și pentru a face modificările necesare.

Gipetto Gipetto
18 sept. 2010 06:54:16