2. May
2009
Trackback URL

En Wordpress-tutorial. Vi ser nå på hvordan vi kan tilpasse vårt tema til å ha flere dynamiske sidebars.

En WordPress widget er et lite programtillegg som kjører i sidebaren på en WordPress-blogg. De kan lastes ned og installeres via dashboard og de fleste WordPress-temaer er satt opp slik at man kan legge widgets til i sidebaren sin. Det som er bra med widgets er at brukere kan gjøre store endringer i dynamikken til bloggen sin uten å endre php-koden.

Å gjøre en sidebar “widget ready” er en ting, men hva om man har flere sidebars i sitt tema? Mange liker å ha forskjellige sidebarer når man for eksempel ser en enkeltpost eller en “page”. Dette er ikke helt intutivt.

For å gjøre en sidebar widget-klar er det et par steg man må igjennom:

1. I mappen til temaet som brukes ligger det en fil som heter functions.php (hvis ikke den finnes, opprett den som en blank php-fil), åpne denne i et tekstredigeringsprogram.

2. Legg inn følgende kode:

<?php
if ( function_exists('register_sidebar') )
	register_sidebar();
?>

3. Åpne filen sidebar.php som ligger i tema-mappen, og legg in følgende kode der du vil at widgets skal plasseres:

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

Dette er alt. Etter at filene er lastet opp til serveren er nå sidebaren klar til å motta widgets via dashboardet:

Standard navn er Sidebar 1

Standard navn er Sidebar 1

Nå skal vi utvide vårt tema til å ha tre forskjellige dynamiske sidebars. En hoved-sidebar til bruk på forsiden og de fleste “pages”, en til å vise på enkeltposter og en som kun skal brukes på about-siden.

1. Åpne funcions.php igjen, slett alt innhold og legg inn følgende:

if ( function_exists('register_sidebar') )
    register_sidebar(array('name'=>'sidebar_main',
        'before_widget' => '',
        'after_widget' => '',
        'before_title' => '<h2>',
        'after_title' => '</h2>',
    ));
	
if ( function_exists('register_sidebar') )
    register_sidebar(array('name'=>'sidebar_post',
        'before_widget' => '',
        'after_widget' => '',
        'before_title' => '<h2>',
        'after_title' => '</h2>',
    ));
	
if ( function_exists('register_sidebar') )
    register_sidebar(array('name'=>'sidebar_about',
        'before_widget' => '',
        'after_widget' => '',
        'before_title' => '<h2>',
        'after_title' => '</h2>',
    ));

Det som her er interessant er navnet man gir de forskjellige sidebars: name:sidebar_main og at man kan legge inn hvilke HTML-tags, for eksempel, man vil ha før og etter titlene til widgets: ‘before_title’ => ‘<h2>’ og ‘after_title’ => ‘</h2>’. Navnene kan være hva som helst, og titlene bør være konform til temaets stilark. Jeg har for eksempel tilpasset <h2>-taggen til å være heading i sidebaren.

3. Åpne sidebar.php (hoved-sidebaren) og legg inn denne koden der hvor du vil ha widgets:

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

Det som er forskjellen nå er at man spesifiserer navnet på den dynamiske sidebaren. Dette må være det samme som spesifisert i functions.php.

4. Åpne dine to andre sidebar-filer og legg inn samme kodesnutt der hvor du vil ha det dynamiske innholdet. I mitt tema heter disse sidebar-single.php og sidebar-about.php. Husk på at når du har flere sidebars i temaet må du spesifisere hvilken du vil inkludere hvis du vil ha en annen enn den som bare heter sidebar.php. For eksempel, i min single.php vil jeg hente sidebaren for singel-poster (sidebar-single.php), og det gjør jeg slik:

<?php
	get_sidebar('single');
?>

(Man må altså navngi sidebar-filene slik: sidebar-<navn>.php.)

5. Overfør filene til webserveren og gå til dashboardet. Under “widgets” kan man nå velge hvilke hvilke widgets man vil ha på hvilken sidebar:

Sidebarene vises i nedtrekksmenyen.

Sidebarene vises i nedtrekksmenyen.

Og dett var dett :-)


Ingen innspill enda.. Vær den første!

Vennligst vær hyggelig :-)


  • Takk for at du besøkte kstudio, Tormod Klingenbergs hjem på nettet.. Mer »
OBS: Meningene som kommer til uttrykk på disse sidene må ikke tas til inntekt for min arbeidsgiver, min familie, mitt land, mine slektninger eller noe annen gruppe jeg tilhører.
© kstudio 2006-2009 Some rights reserved
Blogglisten