tags:

views:

44

answers:

3

Hi,

I am using a wordpress template in php like this:

<?php
include('wp-blog-header.php');
get_header();
?>

...Hello World...

<?php get_footer(); ?>

ok, it works good... but the contents of title and other meta tags are empty. How can I change the header contents or use my own $variables inside the get_header() section? it doesnt work like this:

$test="Blabla";
get_header();

.. inside a wordpress header template:
echo $test;

the $test variable is empty :(.. any ideas? thanks!

+3  A: 

The $test variable is empty because the header is included by a function, hence effectively 'in' the function, and more importantly, in a different scope.. think of it like

function get_header()
{
  $test = '1234';
}
get_header();
echo $test; // won't work because test is in a different scope

you can however use globals, or $_SESSION variables, or create a static class to hold variables in that can be called from anywhere.

the global option is probably the quickest fix here (not necessarily the strictest though).

$GLOBALS['test'] = "Blabla";
get_header();

.. inside a wordpress header template:
echo $GLOBALS['test'];

hope that helps

nathan
A: 

put all your different custom function and/or variable in your functions.php

or replace get_header(); by include get_bloginfo("template_url").'/header.php';

Eduplessis
and thumbs up for @nathan explanation
Eduplessis
Don't include via URL when you don't have to - "include get_bloginfo("template_url").'/header.php';" use `include TEMPLATE_DIR . '/header.php';` instead.
TheDeadMedic
yeah true ... my mistake
Eduplessis
A: 

By default get_header() pulls the header.php file. you could simply rewrite the header.php file to include what you want. If you don't want to rewrite it for all templates but for only a few you could use get_header('name') which would grab header-name.php in which you could have your own items.

curtismchale