web-dev-qa-db-fra.com

Quel est le meilleur moyen d'inclure un widget dans une page?

Je suis en train de créer un nouveau blog WordPress et j'aimerais inclure un widget dans le contenu d'une page. J'ai trouvé des forums décrivant PHP hacks qui semblaient s'appliquer à des versions plus anciennes. Avec WordPress 3.0.1, quel est le meilleur moyen d'inclure un widget dans une page?

3
g .

Ce plugin pourrait être le moyen le plus simple. http://wordpress.org/extend/plugins/add-widgets-to-page/

mais pour une méthode de travail ...

Recherchez dans le fichier functions.php du thème Twenty-Ten et recherchez où les barres latérales dynamiques sont enregistrées. Cela ressemble à ceci:

<?php function twentyten_widgets_init() {
    // Area 1, located at the top of the sidebar.
    register_sidebar( array(
        'name' => __( 'Primary Widget Area', 'twentyten' ),
        'id' => 'primary-widget-area',
        'description' => __( 'The primary widget area', 'twentyten' ),
        'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
        'after_widget' => '</li>',
        'before_title' => '<h3 class="widget-title">',
        'after_title' => '</h3>',
    ) );

    // Area 2, located below the Primary Widget Area in the sidebar. Empty by default.
    register_sidebar( array(
        'name' => __( 'Secondary Widget Area', 'twentyten' ),
        'id' => 'secondary-widget-area',
        'description' => __( 'The secondary widget area', 'twentyten' ),
        'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
        'after_widget' => '</li>',
        'before_title' => '<h3 class="widget-title">',
        'after_title' => '</h3>',
    ) );

    // Area 3, located in the footer. Empty by default.
        //similar code as above
    // Area 4, located in the footer. Empty by default.
        //similar code as above
    // Area 5, located in the footer. Empty by default.
        //similar code as above
    // Area 6, located in the footer. Empty by default.
        //similar code as above
    //Your Area 7, copy area 2 above and customize it
    }
/** Register sidebars by running twentyten_widgets_init() on the widgets_init hook. */
add_action( 'widgets_init', 'twentyten_widgets_init' );

J'ai écrit dans la zone 7 ci-dessus, car Twenty-Ten comprend 6 zones widgetisées. Copiez tout cela dans le fichier functions.php de votre thème s'il n'y est pas déjà, et supprimez ou ajoutez ce dont vous avez besoin.

Utilisez l'appel de fonction suivant dans votre fichier de modèle où vous souhaitez placer votre zone personnalisée 7:

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(7) ) : endif; ?> 

Par exemple, créez un fichier de modèle dans votre répertoire de thème et utilisez-le comme modèle par défaut pour une page créée dans WordPress. Allez à Apparence-> Widgets et faites glisser les widgets vers votre zone 7 et ils apparaîtront sur votre page. Si vous avez besoin d’une autre zone de widget (barre latérale dynamique), remplacez le 7 par un 8>

Cette réponse a été créée avec l’aide de ce message écrit par un gars du nom de Flynn

2
kevtrout

J'ai publié un plugin appelé Widgets on Pages qui permet une définition facile et l'inclusion en ligne de widgets dans des publications et des pages. Je pense que cela serait utile

2
Todd Halfpenny