The question:
I need to call a sidebar into my header. I’ve switched to the new twenty twelve theme and created my own child theme. With this new theme I decided to keep things organised and together, so I put my widgets functions, stylesheet and two new sidebar templates (one for header and one for footer widgets) in one folder called pgwidgets
.
This is the call i used in my header
<? if ( is_front_page() ) : ?>
<?php get_sidebar( 'homepage' ) ; ?>
<?php endif ; ?>
This calls the sidebar-homepage.php
file into my header from the themes’ root directory. How do I change the get_sidebar( 'homepage' )
part to call the sidebar from the pgwidgets folderfolder (pgwidgets/sidebar-homepage.php
)
The Solutions:
Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.
Method 1
Impossible with get_sidebar()
.
From that function’s body:
function get_sidebar( $name = null ) {
do_action( 'get_sidebar', $name );
$templates = array();
if ( isset($name) )
$templates[] = "sidebar-{$name}.php";
$templates[] = 'sidebar.php';
So if you pass a $name
or any other custom value to the function, they will be set between two fixed strings.
You can use locate_template()
instead:
locate_template( 'pgwidgets/sidebar-homepage.php', TRUE );
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0