I’m attempting to use actions to override function calls I currently have throughout a template (to make updating certain replicated sections easier). For example, in archives.php
I have the following:
<?php get_header(); ?>
<?php roots_content_before(); ?>
<?php $page_for_posts = get_option( 'page_for_posts' ); if ($page_for_posts) { echo '<h1>' . get_the_title($page_for_posts) . '</h1>'; } ?>
<h3>
<?php
$term = get_term_by('slug', get_query_var('term'), get_query_var('taxonomy'));
if ($term) {
echo $term->name;
} elseif (is_day()) {
printf(__('Daily Archives: %s', 'roots'), get_the_date());
} elseif (is_month()) {
printf(__('Monthly Archives: %s', 'roots'), get_the_date('F Y'));
} elseif (is_year()) {
printf(__('Yearly Archives: %s', 'roots'), get_the_date('Y'));
} elseif (is_author()) {
global $post;
$author_id = $post->post_author;
printf(__('Author Archives: %s', 'roots'), get_the_author_meta('user_nicename', $author_id));
} else {
single_cat_title();
}
?>
</h3>
<?php echo category_description(); ?>
<?php roots_loop_before(); ?>
<?php get_template_part('loop', 'category'); ?>
<?php roots_loop_after(); ?>
<?php roots_content_after(); ?>
<?php get_footer(); ?>
You can see a few of the functions, like roots_content_before();
In a separate file, I have the following:
function roots_content_before() { do_action('roots_content_before'); }
and use it as follows:
<?php
add_action('roots_content_before', 'roots_bootstrap_content_before');
function roots_bootstrap_content_before() { ?>
this is some text
<?php }
?>
From what I’ve read, especially if I’m going to have large chunks of code, I should be using the output buffer, but when I try to do this, I’m getting diddly squat:
<?php
add_action('roots_content_before', 'roots_bootstrap_content_before');
function roots_bootstrap_content_before() { ob_start(); ?>
this is some text
<?php return ob_get_clean();
}
?>
Am I thinking of this completely wrong? I am still learning, but have been trying for a bit without any success. Any pointers in the right direction would really be appreciated. Thanks!