As a side note, you generally should not be calling functions that start with an underscore as they are intended to be private functions - not to be used from outside that module.
You should also be doing the block loading in a preprocess function, and only printing it in the page.tpl.php file.
The proper way to do what you are doing is this:
In your template.php file:
/**
* Implements template_preprocess_page().
*/
function bootstrap_preprocess_page(&$variables) {
// No need to pass in the q arg, as it is the default.
$path = drupal_get_path_alias();
if ($path == 'home') {
// Load the block inside the if statement so you aren't loading
// it when you don't need it.
$block = module_invoke('block', 'block_view', '2');
$variables['my_block_content'] = $block['content'];
}
}
then in your page.tpl.php:
<?php print render($my_block_content); ?>
If you really want it all in the page template, just do this:
<?php
// No need to pass in the q arg, as it is the default.
$path = drupal_get_path_alias();
if ($path == 'home') {
// Load the block inside the if statement so you aren't loading
// it when you don't need it.
$block = module_invoke('block', 'block_view', '2');
print render($block['content']);
}
?>
For more information on rendering blocks see http://drupal.org/node/26502