WordPress, widgets, register_sidebars

Uppdaterat 2017-08-08 / från och med Twenty Sixteen så ser koden register_sidebar ut som nedanför:

function temats_namn_widgets_init() {
	register_sidebar( array(
		'name'          => __( 'Sidebar', 'temats_namn' ),
		'id'            => 'sidebar-1',
		'description'   => __( 'Add widgets here to appear in your sidebar.', 'temats_namn' ),
		'before_widget' => '<section id="%1$s" class="widget %2$s">',
		'after_widget'  => '</section>',
		'before_title'  => '<span id="more-710"></span><h2 class="widget-title">',
		'after_title'   => '</h2>',
	) );

}
add_action( 'widgets_init', 'temats_namn_widgets_init' );

De som bygger wordpressteman vill förmodligen också implementera funktionen widget i sitt tema. koden för detta skrivs in i filen functions.php sedan wp version 2.2. I Tema Default ser koden ut så här:

if ( function_exists('register_sidebar') )
    register_sidebar(array(
        'before_widget' => '<li id="%1$s" class="widget %2$s">',
        'after_widget' => '</li>',
        'before_title' => '<h2 class="widgettitle">',
        'after_title' => '</h2>',
    ));

Frågan som författarna på wpengineer.com ställer sig är; hur länge kommer du att vilja fråga om denna funktion finns? Om vi kikar i temat default från och med version 2.7 så påpekar de att if have_comments inte längre efterfrågas utan denna har ersatts med en ny template-tag, ändock görs fortfarande en förfrågan om register_sidebar existerar. Utan att vilja trampa någon av utvecklarna på tårna menar de att dessa kanske inte har tänkt på denna sak. De har därför tagit på sig uppgiften att utveckla implementeringen av förfrågan om register_sidebar och skapat en enklare kod som vara kompatibel även för framtida versioner. Håll med om att koden är renare.

<?php
$sidebars = array('Home Sidebar', 'Post Sidebar', 'Page Sidebar');
foreach($sidebars as $name) {
	register_sidebar(array('name'=> $name,
		'before_widget' => '<div class="block">',
		'after_widget' => '</div><div class="blockfooter"></div>',
		'before_title' => '<h3>',
		'after_title' => '</h3>',
	));
}
?>

Jag vill bara påminna om att koden fortfarande ska skrivas in i functions.php.

Author: Lena

Lena är en riktig web geek med sikte mot web standards. Hon har både fått utmärkelsen Årets WebQueen som att ha blivit omskriven för sina insatser på nätet. Hennes stora intresse är gränssnitt. Lena är gränssnitt- front end designer och har studerat design, gränssnitt, tillgänglighet, användbarhet och web standards på Blekinge Tekniska Högskola.

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *