WordPress.org

Forums

Pagination problems (6 posts)

  1. noski2009
    Member
    Posted 4 years ago #

    Having trouble trying to get pagination to show up on this portfolio page, I recon it probably has something to do with the loop but not sure what?

    Any help would be great thanks.

    <?php
    	$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $loop = new WP_Query( array( 'post_type' => 'portfolio','posts_per_page' => 6, 'paged'=>$paged) );
    	?>
    <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
    
    	<div class="portfolio-item">
    
      <div class="thumbnail">
         <?php $thumbID = get_post_thumbnail_id($post->ID); ?>
         <a href="<?php echo the_permalink() ?>" rel="project"><?php the_post_thumbnail() ?></a>
      </div>
    
    <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
    
         <div class="excerpt">
    	<?php the_excerpt(); ?>
         </div>
    </div>
    
    <?php endwhile; ?>
    
    <div id="paginate">
    		<?php if (function_exists("emm_paginate")) {
    			emm_paginate();
    		} ?>
    </div>
  2. alchymyth
    Forum Moderator
    Posted 4 years ago #

    you need to integrate the 'paged' parameter into your query

    http://codex.wordpress.org/Function_Reference/query_posts#Pagination_Parameters

  3. noski2009
    Member
    Posted 4 years ago #

    I thought that was happening with

    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ???

  4. alchymyth
    Forum Moderator
    Posted 4 years ago #

    I thought that was happening with

    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ???

    this is a ternary operator, which just gets the value of the 'paged' query variable:
    kind of: "if the variable is set, use it, else use 1"

    you have to put the value back into your custom query (which you haven't posted - must be somewhere before the lines of your first post.

  5. noski2009
    Member
    Posted 4 years ago #

    Hmm only thing before the first line is a couple of divs? could it be the pagination set up in the functions file? i.e.

    [Code moderated as per the Forum Rules. Please use the pastebin]

    Thanks

  6. noski2009
    Member
    Posted 4 years ago #

    grrr

    function emm_paginate($args = null) {
    	$defaults = array(
    		'page' => null, 'pages' => null,
    		'range' => 3, 'gap' => 3, 'anchor' => 1,
    		'before' => '<div class="emm-paginate">', 'after' => '</div>',
    		'title' => __('Pages:'),
    		'nextpage' => __('&raquo;'), 'previouspage' => __('&laquo'),
    		'echo' => 1
    	);
    
    	$r = wp_parse_args($args, $defaults);
    	extract($r, EXTR_SKIP);
    
    	if (!$page && !$pages) {
    		global $wp_query;
    
    		$page = get_query_var('paged');
    		$page = !empty($page) ? intval($page) : 1;
    
    		$posts_per_page = intval(get_query_var('posts_per_page'));
    		$pages = intval(ceil($wp_query->found_posts / $posts_per_page));
    	}
    
    	$output = "";
    	if ($pages > 1) {
    		$output .= "$before<span class='emm-title'>$title</span>";
    		$ellipsis = "<span class='emm-gap'>...</span>";
    
    		if ($page > 1 && !empty($previouspage)) {
    			$output .= "<a href='" . get_pagenum_link($page - 1) . "' class='emm-prev'>$previouspage</a>";
    		}
    
    		$min_links = $range * 2 + 1;
    		$block_min = min($page - $range, $pages - $min_links);
    		$block_high = max($page + $range, $min_links);
    		$left_gap = (($block_min - $anchor - $gap) > 0) ? true : false;
    		$right_gap = (($block_high + $anchor + $gap) < $pages) ? true : false;
    
    		if ($left_gap && !$right_gap) {
    			$output .= sprintf('%s%s%s',
    				emm_paginate_loop(1, $anchor),
    				$ellipsis,
    				emm_paginate_loop($block_min, $pages, $page)
    			);
    		}
    		else if ($left_gap && $right_gap) {
    			$output .= sprintf('%s%s%s%s%s',
    				emm_paginate_loop(1, $anchor),
    				$ellipsis,
    				emm_paginate_loop($block_min, $block_high, $page),
    				$ellipsis,
    				emm_paginate_loop(($pages - $anchor + 1), $pages)
    			);
    		}
    		else if ($right_gap && !$left_gap) {
    			$output .= sprintf('%s%s%s',
    				emm_paginate_loop(1, $block_high, $page),
    				$ellipsis,
    				emm_paginate_loop(($pages - $anchor + 1), $pages)
    			);
    		}
    		else {
    			$output .= emm_paginate_loop(1, $pages, $page);
    		}
    
    		if ($page < $pages && !empty($nextpage)) {
    			$output .= "<a href='" . get_pagenum_link($page + 1) . "' class='emm-next'>$nextpage</a>";
    		}
    
    		$output .= $after;
    	}
    
    	if ($echo) {
    		echo $output;
    	}
    
    	return $output;
    }
    
    /**
     * Helper function for pagination which builds the page links.
     *
     * @access private
     * @param int $start The first link page.
     * @param int $max The last link page.
     * @return int $page Optional, default is 0. The current page.
     */
    function emm_paginate_loop($start, $max, $page = 0) {
    	$output = "";
    	for ($i = $start; $i <= $max; $i++) {
    		$output .= ($page === intval($i))
    			? "<span class='emm-page emm-current'>$i</span>"
    			: "<a href='" . get_pagenum_link($i) . "' class='emm-page'>$i</a>";
    	}
    	return $output;
    }
    
    function post_is_in_descendant_category( $cats, $_post = null )
    {
    	foreach ( (array) $cats as $cat ) {
    		// get_term_children() accepts integer ID only
    		$descendants = get_term_children( (int) $cat, 'category');
    		if ( $descendants && in_category( $descendants, $_post ) )
    			return true;
    	}
    	return false;
    }

Topic Closed

This topic has been closed to new replies.

About this Topic

Tags