Widget într-o pagina personalizata

1. Creare child theme

În directorul cu tema nouă se crează un fişier style.css cu codul:

/*
Theme Name: Twentytwelve Child
Author:
Description: Child theme for the twentytwelve theme
Template: twentytwelve
*/
@import url("../twentytwelve/style.css");

2. Înregistrare widget

În acelaşi director cu tema nouă se adaugă fişierul function.php:

<?php
function twentytwelvechild_widgets_init() {
     register_sidebar( array(
          'name' => __( 'Denumire widget', 'twentytwelve' ),
          'id' => 'sidebar-9',
          'description' => __( 'Descriere widget', 'twentytwelve' ),
          'before_widget' => '<aside id="%1$s" class="widget %2$s">',
          'after_widget' => '</aside>',
          'before_title' => '<h3 class="widget-title">',
          'after_title' => '</h3>',
     ) );
}
add_action( 'widgets_init', 'twentytwelvechild_widgets_init' );

3. Creare template pagină personalizată

Se copiază page.php în folderul cu tema nouă cu un alt nume (pagechild.php de exemplu) şi se modifică începutul fişierului cu codul de mai jos:

<?php
/*
Template Name: Denumire template
*/

Pentru o clonă twentytwelve se copiază cu o denumire nouă (contentchild-page.php) şi fişierul content-page.php responsabil cu afişarea conţinutului paginii personalizate. Referinţa în pagechild.php va fi:

<?php get_template_part( 'contentchild', 'page' ); ?>

4. Adăugare widget în conţinut

Widget-ul se afişează prin inserarea codului următor într-un bloc div de conţinut (cum ar fi clasa CSS entry-content) din pagina personalizată.

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar-9') ) : ?>
<?php endif; ?>

Widget-ul se configurează din panoul de control, iar afişarea se va face doar în paginile cu template-ul nou creat.

Postat în WordPress