Explanation of Use', 'More Plugins', 'Elegant Themes' ); $links = array_merge( $links, $new_links ); } return $links; } add_filter( 'plugin_row_meta', 'Alobaidi_Timeline_plugin_row_meta', 10, 2 ); // Get date of first post in the blog function Alobaidi_Timeline_get_first_post_year(){ $args = array( 'post_type' => 'post', 'post_status' => 'publish', 'order' => 'ASC', 'posts_per_page' => 1 ); $posts = get_posts( $args ); foreach ($posts as $post) { return get_post_time('Y', false, $post->ID, false); } } // Alobaidi Timeline Shortcode function Alobaidi_Timeline($atts){ ob_start(); if( !empty($atts['number']) ){ $number = $atts['number']; }else{ $number = 100; // Default number posts per page } if( !empty($atts['list']) ){ $list = $atts['list']; }else{ $list = 'ul'; // Default list } if( !empty($atts['prev']) ){ $prev = $atts['prev']; }else{ $prev = 'Previous Page'; // Default text } if( !empty($atts['next']) ){ $next = $atts['next']; }else{ $next = 'Next Page'; // Default text } $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1; $from = Alobaidi_Timeline_get_first_post_year(); $args = array( 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => $number, 'paged' => $paged, 'date_query' => array( array( 'year' => array( $from, date('Y') ), 'compare' => 'BETWEEN' ) ) ); $query = new WP_Query( $args ); if ( $query->have_posts() ){ echo '<'.$list.' class="alobaidi_timeline_list">'; while ( $query->have_posts() ) { $query->the_post(); $post_id = $query->post->ID; $post_title = get_the_title($post_id); $post_year = get_post_time('Y', false, $post_id, false); $post_link = get_permalink($post_id); $comma = " - "; echo '
  • '.$post_title.''.$comma.$post_year.'
  • '; } echo ""; } if( get_previous_posts_link() or get_next_posts_link('', $query->max_num_pages) ){ if( get_previous_posts_link() ){ $prev = get_previous_posts_link($prev); }else{ $prev = null; } if( get_next_posts_link('', $query->max_num_pages) ){ $next = get_next_posts_link($next, $query->max_num_pages); }else{ $next = null; } if( get_previous_posts_link() and get_next_posts_link('', $query->max_num_pages) ){ $line = " - "; }else{ $line = null; } echo '

    '.$prev.$line.$next.'

    '; } wp_reset_postdata(); return ob_get_clean(); } add_shortcode('alobaidi_timeline', 'Alobaidi_Timeline'); ?>