( ! ) SCREAM: Error

I’m starting on my first wordpress theme and following the _s starter theme tutorial and i’m up to here: http://themeshaper.com/2012/11/01/the-wordpress-theme-index-template/

Having finished this section i’m getting the follow errors: http://organicwebdesigns.co.uk/images/error.gif

Reading some comments below I see another person ha the same problem and the response was to include template-tags.php in your functions.php which I do. I have the following code:

function organic_setup() {

    /**
     * Custom template tags for this theme.
     */
    require( get_template_directory() . '/inc/template-tags.php' );

    /**
     * Custom functions that act independently of the theme templates
     */
    require( get_template_directory() . '/inc/tweaks.php' );
 

and here is the code for the content.php

<?php
/**
 * @package organic
 * @since organic 1.0
 */
require( get_template_directory() . '/inc/template-tags.php' );
?>

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    <header class="entry-header">
        <h1 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'organic' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h1>

        <?php if ( 'post' == get_post_type() ) : ?>
        <div class="entry-meta">
            <?php organic_posted_on(); ?>
        </div><!-- .entry-meta -->
        <?php endif; ?>
    </header><!-- .entry-header -->

    <?php if ( is_search() ) : // Only display Excerpts for Search ?>
    <div class="entry-summary">
        <?php the_excerpt(); ?>
    </div><!-- .entry-summary -->
    <?php else : ?>
    <div class="entry-content">
        <?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'organic' ) ); ?>
        <?php wp_link_pages( array( 'before' => '<div class="page-links">' . __( 'Pages:', 'organic' ), 'after' => '</div>' ) ); ?>
    </div><!-- .entry-content -->
    <?php endif; ?>

    <footer class="entry-meta">
        <?php if ( 'post' == get_post_type() ) : // Hide category and tag text for pages on Search ?>
            <?php
                /* translators: used between list items, there is a space after the comma */
                $categories_list = get_the_category_list( __( ', ', 'organic' ) );
                if ( $categories_list && organic_categorized_blog() ) :
            ?>
            <span class="cat-links">
                <?php printf( __( 'Posted in %1$s', 'organic' ), $categories_list ); ?>
            </span>
            <?php endif; // End if categories ?>

            <?php
                /* translators: used between list items, there is a space after the comma */
                $tags_list = get_the_tag_list( '', __( ', ', 'organic' ) );
                if ( $tags_list ) :
            ?>
            <span class="sep"> | </span>
            <span class="tag-links">
                <?php printf( __( 'Tagged %1$s', 'organic' ), $tags_list ); ?>
            </span>
            <?php endif; // End if $tags_list ?>
        <?php endif; // End if 'post' == get_post_type() ?>

        <?php if ( ! post_password_required() && ( comments_open() || '0' != get_comments_number() ) ) : ?>
        <span class="sep"> | </span>
        <span class="comments-link"><?php comments_popup_link( __( 'Leave a comment', 'organic' ), __( '1 Comment', 'organic' ), __( '% Comments', 'organic' ) ); ?></span>
        <?php endif; ?>

        <?php edit_post_link( __( 'Edit', 'organic' ), '<span class="sep"> | </span><span class="edit-link">', '</span>' ); ?>
    </footer><!-- .entry-meta -->
</article><!-- #post-<?php the_ID(); ?> -->

Are there any obvious mistakes on what is going wrong here and what should I change?

Check that you have function organic_posted_on() defined in themes functions.php or file included in it.

I checked and it’s not there, but it seems they’ve not included it in the tutoial of the functions page which is here: http://themeshaper.com/2012/10/27/setting-up-your-theme-functions/

So what is this function for and how would I define it?

I also checked their finished file which doesn’t include it https://github.com/Automattic/_s/blob/master/functions.php

ok so I found ( from their source here: https://github.com/Automattic/_s/blob/master/inc/template-tags.php ) that there is a function for theirtheme_posted_on in the inc/template-tags.php which is why they mentioned including template-tags.php in the functions.php file?However I have included require( get_template_directory() . ‘/inc/template-tags.php’ ); in the functions.php plus adding the code below to my temple-tags.php does not get rid of the error. Any ideas what’s going on in this case?

if ( ! function_exists( '_s_posted_on' ) ) :
/**
* Prints HTML with meta information for the current post-date/time and author.
*
* @since _s 1.0
*/
function _s_posted_on() {
printf( __( 'Posted on <a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s">%4$s</time></a><span class="byline"> by <span class="author vcard"><a class="url fn n" href="%5$s" title="%6$s" rel="author">%7$s</a></span></span>', '_s' ),
esc_url( get_permalink() ),
esc_attr( get_the_time() ),
esc_attr( get_the_date( 'c' ) ),
esc_html( get_the_date() ),
esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
esc_attr( sprintf( __( 'View all posts by %s', '_s' ), get_the_author() ) ),
get_the_author()
);
}
endif;

Yes, functions that are in files included in functions.php are also available in your theme.
Make sure your naming is correct, in your template it was:


...
<?php organic_posted_on(); ?>
...

and in your template-tags.php it’s:


...
function _s_posted_on() {
...

If you are renaming all _s functions to your theme name, then stick to that.