As far as I understand (from the get_template_part codex) get_template_part
is just a wrapper round the PHP require function.
So if I have a variable that I have create in a page template file e.g. $message
, I would have assumed you could directly use that variable in the template part
So in template file:
<?php
$message = 'my message';
get_template_part('messages');
?>
Then in template part messages.php:
<?php echo $message; ?>
However the echo will display nothing.
D’oh, it just needs a
global
as its inside a function.messages.php:
Source
You can use
locate_template
to find the template file to include. Bit cleaner than using globals.Ie
require(locate_template('messages'));
If you use locate_template() instead of get_template_part() you can use all variables in that script:
Echo $message will work.