Navigation
This is archived content. Visit our new forum.

Tagged: 

  • Author
    Posts
  • #910416
    Gee R
    Participant

    Hi all,

    I want to pull-in the most recent blog title (only) to insert into a section on the homepage. I don’t want any box styling, featured image, or any post content. Just the title, with a “read more” button taking the viewer to the post.

    I tried using embedding the RSS widget, but that didn’t work. I tried using Revolution Slider (post-based option, set to one post per slide and excerpt to 0) but that didn’t work either.

    Any ideas?

    #910602
    Christopher
    Moderator

    Hi there,

    Please insert recent posts shortcode in text element :

    [x_recent_posts count="1" no_image="true"]

    Add following code in child theme’s functions.php file :

    // =============================================================================
    function x_shortcode_recent_posts_v2code( $atts ) {
      extract( shortcode_atts( array(
        'id'          => '',
        'class'       => '',
        'style'       => '',
        'type'        => '',
        'count'       => '',
        'category'    => '',
        'enable_excerpt' => '',
        'offset'      => '',
        'orientation' => '',
        'no_image'    => '',
        'fade'        => ''
      ), $atts ) );
    
      $id            = ( $id          != ''          ) ? 'id="' . esc_attr( $id ) . '"' : '';
      $class         = ( $class       != ''          ) ? 'x-recent-posts cf ' . esc_attr( $class ) : 'x-recent-posts cf';
      $style         = ( $style       != ''          ) ? 'style="' . $style . '"' : '';
      $type          = ( $type        == 'portfolio' ) ? 'x-portfolio' : 'post';
      $count         = ( $count       != ''          ) ? $count : 3;
      $category      = ( $category    != ''          ) ? $category : '';
      $category_type = ( $type        == 'post'      ) ? 'category_name' : 'portfolio-category';
      $offset        = ( $offset      != ''          ) ? $offset : 0;
      $orientation   = ( $orientation != ''          ) ? ' ' . $orientation : ' horizontal';
      $no_image      = ( $no_image    == 'true'      ) ? $no_image : '';
      $fade          = ( $fade        == 'true'      ) ? $fade : 'false';
      $enable_excerpt = ( $enable_excerpt == 'true'      ) ? true : false;
    
      $output = "<div {$id} class=\"{$class}{$orientation}\" {$style} data-fade=\"{$fade}\">";
    
        $q = new WP_Query( array(
          'orderby'          => 'date',
          'post_type'        => "{$type}",
          'posts_per_page'   => "{$count}",
          'offset'           => "{$offset}",
          "{$category_type}" => "{$category}"
        ) );
    
        if ( $q->have_posts() ) : while ( $q->have_posts() ) : $q->the_post();
    
          if ( $no_image == 'true' ) {
            $image_output       = '';
            $image_output_class = 'no-image';
          } else {
            $image_output       = '<div class="x-recent-posts-img">' . get_the_post_thumbnail( get_the_ID(), 'entry-' . get_theme_mod( 'x_stack' ) . '-cropped', NULL ) . '</div>';
            $image_output_class = 'with-image';
          }
    
          $output .= '<a class="x-recent-post' . $count . ' ' . $image_output_class . '" href="' . get_permalink( get_the_ID() ) . '" title="' . esc_attr( sprintf( __( 'Permalink to: "%s"', '__x__' ), the_title_attribute( 'echo=0' ) ) ) . '">'
                     . '<article id="post-' . get_the_ID() . '" class="' . implode( ' ', get_post_class() ) . '">'
                       . '<div class="entry-wrap">'
                         . $image_output
                         . '<div class="x-recent-posts-content">'
                           . '<h3 class="h-recent-posts">' . get_the_title() . '</h3>'
                           . '<span class="x-recent-posts-date">' . get_the_date() . '</span>'
                           //. ( $enable_excerpt ? '<span class="x-recent-posts-excerpt">' . strip_tags( get_the_excerpt() ) . '</span>' : '' )
                           .'<div>' . __( 'Read More', '__x__' ) .'</div>'
                         . '</div>'
                       . '</div>'
                     . '</article>'
                   . '</a>';
    
        endwhile; endif; wp_reset_postdata();
      
      $output .= '</div>';
    
      return $output;
    }
    
    add_action('wp_head', 'change_recent_posts_to_v2');
    
    function change_recent_posts_to_v2() {
      remove_shortcode( 'x_recent_posts' );
      add_shortcode( 'x_recent_posts', 'x_shortcode_recent_posts_v2code' );
    }

    Hope it helps.

    #910636
    Gee R
    Participant

    Thanks – this is close. However there are a few other small style-based changes needed:

    1) Remove the white background box
    2) Remove post date information
    3) Call the right class or id to style the text as required (i.e. color, alignment, size, etc.).
    4) Have a button underneath that links to the post.

    I need it to look something along the lines of attached.

    Thanks in advance for any help.

    #910944
    Christian
    Moderator

    Hey Gee,

    We’re sorry but further customizations from here would be getting into custom development, which is outside the scope of support we can offer. If you need more in depth changes, you may wish to consult with a developer.

    Thanks for understanding.

    #911065
    Gee R
    Participant

    OK, I understand. Thanks anyway.

    By trial and error I’ve found out the classes to edit (.x-recent-posts a.x-recent-post for the box, .x-recent-posts for the title and .x-recent-posts .x-recent-posts-date for the date, if it helps anyone else here).

    #911565
    Nico
    Moderator

    Hi There,

    Thanks for sharing. We really appreciate it.

    Thank you also for understading.

    Feel free to ask us again.

  • <script> jQuery(function($){ $("#no-reply-910416 .bbp-template-notice, .bbp-no-topic .bbp-template-notice").removeClass('bbp-template-notice'); }); </script>