vendredi 24 juin 2016

how to make default wordpress gallery pagination

i have this code in functions.php, and i want to make pagination on default wordpress gallery, so can you help me to how can i make wordpress gallery pagination, this code is not working...

and how can i add pagination in index.php or in main page...

/*FILTER: GALLERY:  --------------------------------------------------------------*/
add_filter('post_gallery', 'filter_gallery', 10, 2);
function filter_gallery()
{
    global $post;

    //GALLERY SETUP STARTS HERE----------------------------------------//
    if (isset($attr['orderby'])) {
        $attr['orderby'] = sanitize_sql_orderby($attr['orderby']);
        if (!$attr['orderby'])
            unset($attr['orderby']);
    }
    //print_r($attr);
    extract(shortcode_atts(array(
        'order' => 'ASC',
        'orderby' => 'menu_order ID',
        'id' => $post->ID,
        'itemtag' => 'dl',
        'icontag' => 'dt',
        'captiontag' => 'dd',
        'columns' => 3,
        'size' => 'thumbnail',
        'include' => '',
        'exclude' => ''
    ), $attr));

    $id = intval($id);
    if ('RAND' == $order) $orderby = 'none';

    if (!empty($include)) {
        $include = preg_replace('/[^0-9,]+/', '', $include);
        $_attachments = get_posts(array('include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby));

        $attachments = array();
        foreach ($_attachments as $key => $val) {
            $attachments[$val->ID] = $_attachments[$key];
        }
    }
    if (empty($attachments)) return '';
    //GALLERY SETUP END HERE------------------------------------------//

    //PAGINATION SETUP START HERE-------------------------------------//
    $current = (get_query_var('paged')) ? get_query_var( 'paged' ) : 1;
    $per_page = 24;
    //$offset = ($page-1) * $per_page;
    $offset = ($current-1) * $per_page;
    $big = 999999999; // need an unlikely integer

    $total = sizeof($attachments);
    $total_pages = round($total/$per_page);
    if($total_pages < ($total/$per_page))
    {   $total_pages = $total_pages+1;
    }
    //PAGINATION SETUP END HERE-------------------------------------//

    //GALLERY OUTPUT START HERE---------------------------------------//
    $output = "<div class=\"gallery-images\">\n";
    $counter = 0;
    $pos = 0;
    foreach ($attachments as $id => $attachment)
    {   $pos++;
        //$img = wp_get_attachment_image_src($id, 'medium');
        //$img = wp_get_attachment_image_src($id, 'thumbnail');
        //$img = wp_get_attachment_image_src($id, 'full');  

        if(($counter < $per_page)&&($pos > $offset))
        {   $counter++;
            $largetitle = get_the_title($attachment->ID);
            $largeimg = wp_get_attachment_image_src($id, 'large');
            $img = wp_get_attachment_image_src($id, array(100,100));
            $output .= " <a href=\"{$largeimg[0]}\" title=\"{$largetitle}\"><img src=\"{$img[0]}\" width=\"{$img[1]}\" height=\"{$img[2]}\" alt=\"\" /></a>\n";
        }
    }

    $output .= "<div class=\"clear\"></div>\n";
    $output .= "</div>\n";
    //GALLERY OUTPUT ENDS HERE---------------------------------------//

    //PAGINATION OUTPUT START HERE-------------------------------------//
    $output .= paginate_links( array(
        'base' => str_replace($big,'%#%',esc_url(get_pagenum_link($big))),
        'format' => '?paged=%#%',
        'current' => $current,
        'total' => $total_pages,
        'prev_text'    => __('«'),
        'next_text'    => __('»')
    ) );
    //PAGINATION OUTPUT ENDS HERE-------------------------------------//

    return $output;
}

/*FILTER: GALLERY:  --------------------------



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire