lundi 23 mars 2015

Pagination fuction in shortcode always displays on top


Pagination function in shortcode always displayed on the top. Please have a look on below code



/*-------------------------------------------------------------------------*/
/* Custom Pagination */
/*-------------------------------------------------------------------------*/

function suareztheme_pagination($pages = '', $range = 2){

$showitems = ( $range * 2 ) + 1;

global $paged;
if(empty($paged))
$paged = 1;

if($pages == ''){

global $wp_query;
$pages = $wp_query->max_num_pages;

if(!$pages){

$pages = 1;
}
}

if( 1 != $pages ){

$pagination_html .= '<div class="pagination">';

if( $paged > 2 && $paged > $range + 1 && $showitems < $pages ){

$pagination_html .= '<a href="' . get_pagenum_link( 1 ) . '">&laquo;</a>';

}

if( $paged > 1 && $showitems < $pages ){

$pagination_html .= '<a href="' . get_pagenum_link( $paged - 1 ) . '">&lsaquo;</a>';

}

for ( $i = 1; $i <= $pages; $i++ ){

if ( 1 != $pages && ( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )){

if ( $paged == $i ){

$pagination_html .= '<span class="current">' . $i . '</span>';

} else{

$pagination_html .= '<a href="' . get_pagenum_link( $i ). '" class="inactive">' . $i . '</a>';

}
}

}

if ( $paged < $pages && $showitems < $pages ){

$pagination_html .= '<a href="' . get_pagenum_link( $paged + 1 ) . '">&rsaquo;</a>';

}

if ( $paged < $pages - 1 && $paged + $range - 1 < $pages && $showitems < $pages ){

$pagination_html .= '<a href="' . get_pagenum_link( $pages ) . '">&raquo;</a>';

}

$pagination_html .= '</div>';

return $pagination_html;
}

}


Then I called it in the shortcode function.



/*-------------------------------------------------------------------------*/
/* Grid Shortcode */
/*-------------------------------------------------------------------------*/

function RecentBlog($atts, $content = null) {
extract(shortcode_atts(array(
"comments" => 'true',
"date" => 'true',
"columns" => '4',
"limit" => '-1',
"title" => 'true',
"description" => 'true',
"cat_slug" => '',
"post_type" => '',
"excerpt_length" => '15',
"readmore_text" => '',
"pagination" => 'false'
), $atts));

global $post;

$postformat = get_post_format();

....

if ( get_query_var('paged') ) {
$paged = get_query_var('paged');
} elseif ( get_query_var('page') ) {
$paged = get_query_var('page');
} else {
$paged = 1;
}

......

if (have_posts()) : while (have_posts()) : the_post();

$postformat = get_post_format();
if( $postformat == "" ) $postformat="standard";

$protected = "";

$portfoliogrid .= '<div class="' . $column_no . ' post grid-post post-' . $postformat . '">';

.....////

$portfoliogrid .= '<div class="summary-info">';
.......
$portfoliogrid .='</div>';

// If either of title and description needs to be displayed.
if ( $title == "true" || $description == "true" ) {

$portfoliogrid .='<div class="work-details">';
......
$portfoliogrid .='</div>';

}

$portfoliogrid .='</div>';

endwhile; endif;

if ( $pagination == "true" ){

if ( isset( $additional_loop ) ){

echo suareztheme_pagination( $additional_loop->max_num_pages );

} else {

echo suareztheme_pagination();

}

if ( function_exists("suareztheme_pagination") ) {
} else {

next_posts_link('&laquo;&laquo; Older Posts');
previous_posts_link('Newer Posts &raquo;&raquo;');

}

}
wp_reset_query();
return $portfoliogrid;
}

add_shortcode( "recentblog", "RecentBlog" );


The above code is working fine , but it has one problem, when it display in specific page, it always displayed on the top regardless it's place.





Aucun commentaire:

Enregistrer un commentaire