Navigation
This is archived content. Visit our new forum.
  • Author
    Posts
  • #40170

    Babette Z
    Participant

    Hi guys,

    > Is it possible to hide only the category in the post meta? How can I achieve this?

    > Is it possible to update the theme without losing all the customizations, if I have not installed a child theme?

    Best and thank you so much,
    Babette

    #40255

    Christian
    Moderator

    Hey Babette,

    1. Yes, it is possible to hide the category only in post meta. Please tell us what Stack you’re using so we could give you the code needed.

    2. No. You’ll need a child theme for that.

    Thanks.

    #40402

    Babette Z
    Participant

    Hi guys,
    thanks. I am using the Renew stack.

    Best and thank you!

    #40501

    Christian
    Moderator

    Hey Babette,

    In your functions.php, please add the code

    function x_renew_entry_meta() {
    
      $author = sprintf( '<span>%s</span>',
        get_the_author()
      );
    
      $date = sprintf( '<span><time class="entry-date" datetime="%1$s">%2$s</time></span>',
        esc_attr( get_the_date( 'c' ) ),
        esc_html( get_the_date( 'm.Y' ) )
      );
    
      if ( comments_open() ) {
        if ( get_comments_number() == 0 ) {
          $comments = sprintf( '<span>%3$s</span>',
            esc_url( get_comments_link() ),
            esc_attr( sprintf( __( 'Leave a comment on: “%s”', '__x__' ), get_the_title() ) ),
            __( 'Leave a Comment' , '__x__' )
          );
        } else if ( get_comments_number() == 1 ) {
          $comments = sprintf( '<span>%3$s</span>',
            esc_url( get_comments_link() ),
            esc_attr( sprintf( __( 'Leave a comment on: “%s”', '__x__' ), get_the_title() ) ),
            get_comments_number() . ' ' . __( 'Comment' , '__x__' )
          );
        } else {
          $comments = sprintf( '<span>%3$s</span>',
            esc_url( get_comments_link() ),
            esc_attr( sprintf( __( 'View all comments on: “%s”', '__x__' ), get_the_title() ) ),
            get_comments_number() . ' ' . __( 'Comments' , '__x__' )
          );
        }
      } else {
        $comments = '';
      }
    
      $post_type           = get_post_type();
      $post_type_post      = $post_type == 'post';
      $post_type_portfolio = $post_type == 'x-portfolio';
      $no_post_meta        = get_theme_mod( 'x_blog_enable_post_meta' ) == 0;
      $no_portfolio_meta   = get_theme_mod( 'x_portfolio_enable_post_meta' ) == 0;
    
      if ( $post_type_post && $no_post_meta || $post_type_portfolio && $no_portfolio_meta ) {
        return;
      } else {
        printf( '<p class="p-meta">%1$s%2$s%3$s%4$s</p>',
          $author,
          $date,
          $comments
        );
      }
    
    }
    

    Hope that helps. 🙂

    #51283

    Babette Z
    Participant

    Figured it out, thanks! 🙂

    #51363

    Aman
    Member

    You’re welcome Babette.

    #305355

    Hi, I use the latest version of x and the renew-child-theme and tried your code – but now all of the meta data is missing – i just want to exclude the categories.

    could you provide an updated code?

    #305361

    just found it out – that is the code that worked, I copied it into my functions.php in the renew-child-theme:

    // Entry Meta
    // =============================================================================

    if ( ! function_exists( ‘x_renew_entry_meta’ ) ) :
    function x_renew_entry_meta() {

    //
    // Author.
    //

    $author = sprintf( ‘<span>%s</span>’,
    get_the_author()
    );

    //
    // Date.
    //

    $date = sprintf( ‘<span><time class=”entry-date” datetime=”%1$s”>%2$s</time></span>’,
    esc_attr( get_the_date( ‘c’ ) ),
    esc_html( get_the_date() )
    );

    //
    // Categories.
    //

    if ( get_post_type() == ‘x-portfolio’ ) {
    if ( has_term( ”, ‘portfolio-category’, NULL ) ) {
    $categories = get_the_terms( get_the_ID(), ‘portfolio-category’ );
    $separator = ‘, ‘;
    $categories_output = ”;
    foreach ( $categories as $category ) {
    $categories_output .= ‘<a href=”‘
    . get_term_link( $category->slug, ‘portfolio-category’ )
    . ‘” title=”‘
    . esc_attr( sprintf( __( “View all posts in: “%s””, ‘__x__’ ), $category->name ) )
    . ‘”> ‘
    . $category->name
    . ‘‘
    . $separator;
    }

    $categories_list = sprintf( ‘<span>%s</span>’,
    trim( $categories_output, $separator )
    );
    } else {
    $categories_list = ”;
    }
    } else {
    $categories = get_the_category();
    $separator = ‘, ‘;
    $categories_output = ”;
    foreach ( $categories as $category ) {
    $categories_output .= ‘<a href=”‘
    . get_category_link( $category->term_id )
    . ‘” title=”‘
    . esc_attr( sprintf( __( “View all posts in: “%s””, ‘__x__’ ), $category->name ) )
    . ‘”>’
    . $category->name
    . ‘‘
    . $separator;
    }

    $categories_list = sprintf( ‘<span>%s</span>’,
    trim( $categories_output, $separator )
    );
    }

    //
    // Comments link.
    //

    if ( comments_open() ) {

    $title = apply_filters( ‘x_entry_meta_comments_title’, get_the_title() );
    $link = apply_filters( ‘x_entry_meta_comments_link’, get_comments_link() );
    $number = apply_filters( ‘x_entry_meta_comments_number’, get_comments_number() );

    if ( $number == 0 ) {
    $text = __( ‘Leave a Comment’ , ‘__x__’ );
    } else if ( $number == 1 ) {
    $text = $number . ‘ ‘ . __( ‘Comment’ , ‘__x__’ );
    } else {
    $text = $number . ‘ ‘ . __( ‘Comments’ , ‘__x__’ );
    }

    $comments = sprintf( ‘<span>%3$s</span>’,
    esc_url( $link ),
    esc_attr( sprintf( __( ‘Leave a comment on: “%s”’, ‘__x__’ ), $title ) ),
    $text
    );

    } else {

    $comments = ”;

    }

    //
    // Output.
    //

    if ( x_does_not_need_entry_meta() ) {
    return;
    } else {
    printf( ‘<p class=”p-meta”>%1$s%2$s%3$s%4$s</p>’,
    $author,
    $date,
    $categories_list,
    $comments
    );
    }

    }
    endif;

    #305655

    Lely
    Moderator

    Glad that you figured this out.

    Cheers!
    X

    #369500

    sbinnie
    Participant

    I tried to copy/paste Amberette’s code but just got a whole mess of syntax errors – probably due to copying from a post rather than a “code” upload.

    Any sugestions?

    #369643

    Christopher
    Moderator

    Hi there,

    Yes, that’s right. please add this :

    // Entry Meta
    // =============================================================================
    
    if ( ! function_exists( 'x_renew_entry_meta' ) ) :
      function x_renew_entry_meta() {
    
        //
        // Author.
        //
    
        $author = sprintf( '<span>%s</span>',
          get_the_author()
        );
    
        //
        // Date.
        //
    
        $date = sprintf( '<span><time class="entry-date" datetime="%1$s">%2$s</time></span>',
          esc_attr( get_the_date( 'c' ) ),
          esc_html( get_the_date() )
        );
    
        //
        // Categories.
        //
    
        if ( get_post_type() == 'x-portfolio' ) {
          if ( has_term( '', 'portfolio-category', NULL ) ) {
            $categories        = get_the_terms( get_the_ID(), 'portfolio-category' );
            $separator         = ', ';
            $categories_output = '';
            foreach ( $categories as $category ) {
              $categories_output .= '<a href="'
                                  . get_term_link( $category->slug, 'portfolio-category' )
                                  . '" title="'
                                  . esc_attr( sprintf( __( "View all posts in: &ldquo;%s&rdquo;", '__x__' ), $category->name ) )
                                  . '"> '
                                  . $category->name
                                  . '</a>'
                                  . $separator;
            }
    
            $categories_list = sprintf( '<span>%s</span>',
              trim( $categories_output, $separator )
            );
          } else {
            $categories_list = '';
          }
        } else {
          $categories        = get_the_category();
          $separator         = ', ';
          $categories_output = '';
          foreach ( $categories as $category ) {
            $categories_output .= '<a href="'
                                . get_category_link( $category->term_id )
                                . '" title="'
                                . esc_attr( sprintf( __( "View all posts in: &ldquo;%s&rdquo;", '__x__' ), $category->name ) )
                                . '">'
                                . $category->name
                                . '</a>'
                                . $separator;
          }
    
          $categories_list = sprintf( '<span>%s</span>',
            trim( $categories_output, $separator )
          );
        }
    
        //
        // Comments link.
        //
    
        if ( comments_open() ) {
    
          $title  = apply_filters( 'x_entry_meta_comments_title', get_the_title() );
          $link   = apply_filters( 'x_entry_meta_comments_link', get_comments_link() );
          $number = apply_filters( 'x_entry_meta_comments_number', get_comments_number() );
    
          if ( $number == 0 ) {
            $text = __( 'Leave a Comment' , '__x__' );
          } else if ( $number == 1 ) {
            $text = $number . ' ' . __( 'Comment' , '__x__' );
          } else {
            $text = $number . ' ' . __( 'Comments' , '__x__' );
          }
    
          $comments = sprintf( '<span><a href="%1$s" title="%2$s">%3$s</a></span>',
            esc_url( $link ),
            esc_attr( sprintf( __( 'Leave a comment on: &ldquo;%s&rdquo;', '__x__' ), $title ) ),
            $text
          );
    
        } else {
    
          $comments = '';
    
        }
    
        //
        // Output.
        //
    
        if ( x_does_not_need_entry_meta() ) {
          return;
        } else {
          printf( '<p class="p-meta">%1$s%2$s%3$s%4$s</p>',
            $author,
            $date,
            $categories_list,
            $comments
          );
        }

    Hope it helps.

    #370589

    sbinnie
    Participant

    Hi:

    I had to add another ‘}’ and endif; at the end but that got rid of the errors.

    How do I remove the categories?

    Thanks

    #370794

    Rad
    Moderator

    Hi there,

    Change this code :

     printf( '<p class="p-meta">%1$s%2$s%3$s%4$s</p>',
            $author,
            $date,
            $categories_list,
            $comments
          );

    to this,

     printf( '<p class="p-meta">%1$s%2$s%3$s</p>',
            $author,
            $date,
            $comments
          );

    Cheers!

    #371310

    sbinnie
    Participant

    Thanks! Worked perfectly.

    #371492

    Prasant Rai
    Moderator

    You are most welcome 🙂 .