Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- add_action( 'genesis_after_entry', 'genesis_after_entry_widget_area' );
- /**
- * Display after-entry widget area on the genesis_after_entry action hook.
- *
- * @since 2.1.0
- *
- * @uses genesis_widget_area() Output widget area.
- */
- function genesis_after_entry_widget_area() {
- if ( ! is_singular( 'post' ) || ! current_theme_supports( 'genesis-after-entry-widget-area' ) ) {
- return;
- }
- genesis_widget_area( 'after-entry', array(
- 'before' => '<div class="after-entry widget-area">',
- 'after' => '</div>',
- ) );
- }
- add_action( 'genesis_after_endwhile', 'genesis_posts_nav' );
- /**
- * Conditionally echo archive pagination in a format dependent on chosen setting.
- *
- * This is shown at the end of archives to get to another page of entries.
- *
- * @since 0.2.3
- *
- * @uses genesis_get_option() Get theme setting value.
- * @uses genesis_prev_next_posts_nav() Prev and Next links.
- * @uses genesis_numeric_posts_nav() Numbered links.
- */
- function genesis_posts_nav() {
- if ( 'numeric' === genesis_get_option( 'posts_nav' ) )
- genesis_numeric_posts_nav();
- else
- genesis_prev_next_posts_nav();
- }
- /**
- * Echo archive pagination in Previous Posts / Next Posts format.
- *
- * Applies `genesis_prev_link_text` and `genesis_next_link_text` filters.
- *
- * @since 0.2.2
- */
- function genesis_prev_next_posts_nav() {
- $prev_link = get_previous_posts_link( apply_filters( 'genesis_prev_link_text', '«' . __( 'Previous Page', 'genesis' ) ) );
- $next_link = get_next_posts_link( apply_filters( 'genesis_next_link_text', __( 'Next Page', 'genesis' ) . '»' ) );
- $prev = $prev_link ? '<div class="pagination-previous alignleft">' . $prev_link . '</div>' : '';
- $next = $next_link ? '<div class="pagination-next alignright">' . $next_link . '</div>' : '';
- $nav = genesis_markup( array(
- 'html5' => '<div %s>',
- 'xhtml' => '<div class="navigation">',
- 'context' => 'archive-pagination',
- 'echo' => false,
- ) );
- $nav .= $prev;
- $nav .= $next;
- $nav .= '</div>';
- if ( $prev || $next )
- echo $nav;
- }
- /**
- * Echo archive pagination in page numbers format.
- *
- * Applies the `genesis_prev_link_text` and `genesis_next_link_text` filters.
- *
- * The links, if needed, are ordered as:
- *
- * * previous page arrow,
- * * first page,
- * * up to two pages before current page,
- * * current page,
- * * up to two pages after the current page,
- * * last page,
- * * next page arrow.
- *
- * @since 0.2.3
- *
- * @global WP_Query $wp_query Query object.
- *
- * @return null Return early if on a single post or page, or only one page present.
- */
- function genesis_numeric_posts_nav() {
- if( is_singular() )
- return;
- global $wp_query;
- //* Stop execution if there's only 1 page
- if( $wp_query->max_num_pages <= 1 )
- return;
- $paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1;
- $max = intval( $wp_query->max_num_pages );
- //* Add current page to the array
- if ( $paged >= 1 )
- $links[] = $paged;
- //* Add the pages around the current page to the array
- if ( $paged >= 3 ) {
- $links[] = $paged - 1;
- $links[] = $paged - 2;
- }
- if ( ( $paged + 2 ) <= $max ) {
- $links[] = $paged + 2;
- $links[] = $paged + 1;
- }
- genesis_markup( array(
- 'html5' => '<div %s>',
- 'xhtml' => '<div class="navigation">',
- 'context' => 'archive-pagination',
- ) );
- echo '<ul>';
- //* Previous Post Link
- if ( get_previous_posts_link() )
- printf( '<li class="pagination-previous">%s</li>' . "\n", get_previous_posts_link( apply_filters( 'genesis_prev_link_text', '«' . __( 'Previous Page', 'genesis' ) ) ) );
- //* Link to first page, plus ellipses if necessary
- if ( ! in_array( 1, $links ) ) {
- $class = 1 == $paged ? ' class="active"' : '';
- printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( 1 ) ), '1' );
- if ( ! in_array( 2, $links ) )
- echo '<li class="pagination-omission">…</li>';
- }
- //* Link to current page, plus 2 pages in either direction if necessary
- sort( $links );
- foreach ( (array) $links as $link ) {
- $class = $paged == $link ? ' class="active"' : '';
- printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $link ) ), $link );
- }
- //* Link to last page, plus ellipses if necessary
- if ( ! in_array( $max, $links ) ) {
- if ( ! in_array( $max - 1, $links ) )
- echo '<li class="pagination-omission">…</li>' . "\n";
- $class = $paged == $max ? ' class="active"' : '';
- printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $max ) ), $max );
- }
- //* Next Post Link
- if ( get_next_posts_link() )
- printf( '<li class="pagination-next">%s</li>' . "\n", get_next_posts_link( apply_filters( 'genesis_next_link_text', __( 'Next Page', 'genesis' ) . '»' ) ) );
- echo '</ul></div>' . "\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement