WordPress, widgets, register_sidebars

wpengineer.com har en intressant tut om register_sidebar och WordPress. Jag kommer här kortfattat återge och plocka ut de mest väsentliga i artikeln.

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.

Liknande poster:

Leave a Reply

Your email address will not be published. Required fields are marked *