Vaak wil je op de homepagina iets anders kwijt in de sidebar dan op de andere pagina’s. Even wat extra info over de site waar je bezoekers op terecht zijn gekomen.
Natuurlijk kun je hiervoor een plugin installeren, maar veel plugins vertragen je site. Wanneer je het framework Genesis gebruikt, is het heel eenvoudig om dit in de functions.php voor elkaar te krijgen. Wanneer je onderstaande code gebruikt, hoef je niet eens een sidebar-bestand aan te maken.
Je moet een paar stappen zetten:
- je nieuwe sidebar registreren
- de standaard sidebar verwijderen op je home.
- de nieuwe sidebar toevoegen
1. nieuwe sidebar registreren
Allereerst vertel je WordPress dat er een nieuwe sidebar is. Dat doe je zo:
genesis_register_sidebar(array( 'id'='sidebar-home', 'name' ='Home Sidebar', 'description' ='Sidebar voor de Home-pagina') );
Toelichting:
id: dit is de interne id van de nieuwe sidebar
name: dit wordt de naam van de nieuwe sidebar, deze is te zien op de Widgets-pagina in het DashBoard
description: Zet hier een korte uitleg waar de sidebar voor bedoeld is. Deze beschrijving verschijnt in de widgets-pagina onder de naam van de sidebar.
2. de standaard sidebar verwijderen van je home-pagina
Je haalt de standaard sidebar als volgt weg:
add_action('genesis_meta', 'hp_home_sidebar'); function hp_home_sidebar() { if ( is_home() ) { remove_action('genesis_after_content','genesis_get_sidebar' ); } }
Deze code haalt de primary sidebar weg.
Wil je de sidebar op een andere pagina weghebben, dan vervang je is_home() door de gewenste pagina, bijv. is_page(65)
3. de nieuwe sidebar toevoegen aan je home
Daarvoor gebruik je de volgende code:
dynamic_sidebar('sidebar-home');
Tussen de haakjes zet je de id die je in de eerste stap aan je nieuwe sidebar hebt gegeven.
Wanneer je wilt dat de widgets in je nieuwe sidebar dezelfde opmaak krijgen als die in de primary sidebar, zet je voor de bovenstaande code dezelfde tag/classes als de primary sidebar heeft (dit vind je heel simpel in de broncode van je theme). Voor Genesis 2 is dit bijv.:
echo '<aside itemtype="http://schema.org/WPSideBar" itemscope="itemscope" role="complementary">';