kaxigt.com

Jag skriver om webben för webben

WordPress: widgets, register_sidebars

Postad: 27 februari 2009 | Uppdaterad · Wordpress | No Comments
Lästid: 2 minuter

Widgets är mer eller mindre oumbärliga. En bra funktion som egentligen inte alltid behöver användas i sidebar eller footer, utan du kan om du bygger eget tema använda dem exempelvis i header.

Denna post innehåller kod-snippar som du kan använda. Det är alltid bra att ta en backup av din stilmall och funktionsfil innan.

Från och med temat Twenty Twenty ser standard-widgets ut så här:

function twentytwenty_sidebar_registration() {
// Arguments used in all register_sidebar() calls.
	$shared_args = array(
		'before_title'  => '<h2 class="widget-title subheading heading-size-3">',
		'after_title'   => '</h2>',
		'before_widget' => '<div class="widget %2$s"><div class="widget-content">',
		'after_widget'  => '</div></div>',
	);

     // Footer #1.

	register_sidebar(

		array_merge(

			$shared_args,

			array(

				'name'        => __( 'Footer #1', 'twentytwenty' ),

				'id'          => 'sidebar-1',

				'description' => __( 'Widgets in this area will be displayed in the first column in the footer.', 'twentytwenty' ),

			)

		)

	);
	// Footer #2.

	register_sidebar(

		array_merge(

			$shared_args,

			array(

				'name'        => __( 'Footer #2', 'twentytwenty' ),

				'id'          => 'sidebar-2',

				'description' => __( 'Widgets in this area will be displayed in the second column in the footer.', 'twentytwenty' ),

			)

		)

	);



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

De som bygger wordpressteman vill förmodligen implementera funktionen widget i sitt tema, kanske göra nya. Koden för detta skrivs in i filen functions.php sedan wp version 2.2.

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 jämför med 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.

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