[Resolved] GP 3.0 Alpha 4 and generate_do_post_meta_item( ‘author’ ) bug?

Home Forums Support GP 3.0 Alpha 4 and generate_do_post_meta_item( ‘author’ ) bug?

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
  • #1438738


    I’m building a custom element in GP 3.0 Alpha 4 to display the meta information and featured image full width below the header and above the content and sidebar.

    I’m using the generate_after_header hook in the GPP elements section with the following code:

    if ( is_single() ) : ?>
        <div class="page-header-content generate-page-header generate-content-header">
            <div class="grid-container">
    					<div class="heading_wrapper">
    				<div class="nn-cat nn-single-cat">
    					<?php echo generate_do_post_meta_item( 'categories' ); ?>
               <div class="above-header-title entry-title">
    						 <h1><?php the_title(); ?></h1>
    						<span> <?php generate_do_post_meta_item( 'author' ); generate_do_post_meta_item( 'date' );?></span>
               <?php if ( has_post_thumbnail() ) { ?>
                   <div class="featured-image-in-header">
                       <?php the_post_thumbnail(); ?>
               <?php } ?>
    <?php endif; ?>

    It all works except the generate_do_post_meta_item( ‘author’ ) which does print out the surrounding classes but does not include the post author name itself.

    Not sure if this is a bug or just me not doing it right but hoping you can help.


    Lead Developer
    Lead Developer

    Hi there,

    You won’t be able to get the author name outside the loop without some custom code.

    Instead of using that function, try this:

    global $post;
    $author_id = $post->post_author;
        '<span class="author vcard" itemtype="http://schema.org/Person" itemscope="itemscope" itemprop="author"><a class="url fn n" href="%1$s" title="%2$s" rel="author" itemprop="url"><span class="author-name" itemprop="name">%3$s</span></a></span>',
        esc_url( get_author_posts_url( $author_id ) ),
        /* translators: author name */
        esc_attr( sprintf( __( 'View all posts by %s', 'gp-premium' ), get_the_author_meta( 'display_name', $author_id ) ) ),
        esc_html( get_the_author_meta( 'display_name', $author_id ) )

    Aha, I see. Sorry about that. I considered whether it might be a loop thing but since it worked for comments, categories, and date I thought it would work for author as well.

    Added your code and it works well. Thanks! 🙂

    Just wondered if this is the recommended way to achieve the layout I am going for (see link in private information)?

    The plan is to add the generate_after_header hook, to display meta information and header image.

    Then use the new generate_before_do_template_part on is_single to filter the content and output only the_content.

    add_filter( 'generate_do_template_part', function( $do ) {
        if ( is_single() ) {
            return false;
        return $do;
    } );
    add_action( 'generate_before_do_template_part', function() {
        if ( is_single() ) :
            <article <?php post_class(); ?>>
              <?php the_content(); ?>
        <?php endif;
    } );

    Does this sound like the best course of action or is there a different way you would recommend?

    Thanks again!


    Lead Developer
    Lead Developer

    The author functions are a little different for some reason – it’s tripped me up a few times before as well.

    You can do that for sure.

    Another way would be to just disable the default title and post meta – that way you’re outputting the content only without having to filter it.


    Thanks Tom,

    Would there perhaps be a speed benefit to disabling the default title and post meta instead of filtering the loop?

    I’m not quite sure how to disable the post title? I might be a little blind, but there seem to be options in the customizer for toggling off everything else in a blog post but not the title?

    Thanks again!


    Lead Developer
    Lead Developer

    No speed benefit, just an alternative way to do it.

    You can use a Layout Element with the Disable Elements module: https://docs.generatepress.com/article/layout-element-overview/

Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.