php


Wordpress Pagination with custom template


I'm developing a website with a custom template and I've been facing some problems when trying to paginate the website (149 pages with 10 posts each one). I'm using a page called template-tests.php in which the pagination links and numbers should be displayed and another page called theme-functions.php in which the pagination function should be written.
Here's what I've got:
1- theme-functions.php (function to paginate only):
function pagination_test() {
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( 'page', 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;
}
echo '<div class="navigation"><ul>' . "\n";
/** Previous Post Link */
if ( get_previous_posts_link() )
printf( '<li>%s</li>' . "\n", get_previous_posts_link('<i class="fa fa-angle-left"></i> Previous') );
/** Link to first page, plus ellipses if necessary */
if ( ! in_array( 1, $links ) ) {
$class = 1 == $paged ? ' class="active"' : '';
printf( '<li%s>%s</li>' . "\n", $class, esc_url( get_pagenum_link( 1 ) ), '1' );
if ( ! in_array( 2, $links ) )
echo '<li>…</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>%s</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>…</li>' . "\n";
$class = $paged == $max ? ' class="active"' : '';
printf( '<li%s>%s</li>' . "\n", $class, esc_url( get_pagenum_link( $max ) ), $max );
}
/** Next Post Link */
if ( get_next_posts_link() )
printf( '<li>%s</li>' . "\n", get_next_posts_link('Next <i class="fa fa-angle-right"></i>') );
echo '</ul></div>' . "\n";
}
2- and here's the template-tests.php extract:
<main id="primary" class="site-main" role="main">
<?php if (have_posts()) : while (have_posts()) : the_post();
get_template_part('content', get_post_format());
endwhile;
?>
<?php if( '' !== $post->post_content ): ?>
<?php zilla_page_before(); ?>
<!--BEGIN .page-->
<article <?php post_class() ?> id="post-<?php the_ID(); ?>">
<?php zilla_page_start(); ?>
<!--BEGIN .entry-content -->
<div class="entry-content">
<?php the_content(__('Read more...', 'zilla')); ?>
<?php wp_link_pages(array('before' => '<p><strong>'.__('Pages:', 'zilla').'</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>
<!--END .entry-content -->
</div>
<?php zilla_page_end(); ?>
<!--END .page-->
</article>
<?php zilla_page_after(); ?>
<?php endif; ?>
<?php endwhile; endif; ?>
<section class="featured content">
<?php zilla_print_home_featured_post(); ?>
</section>
<section class="recent content <?php echo zilla_get_mod_state('homepage_recent_layout') ? esc_attr( zilla_get_mod('homepage_recent_layout') ) : 'grid'; ?>">
<div class="container">
<div class="col-md-8">
<?php zilla_print_home_recent_posts(); ?>
</div>
<div id="affix-home" class="text-right col-md-4 hidden-xs hidden-sm affix">
<br />
<?php /* Widgetised Area */
if( is_active_sidebar( 'sidebar' ) )
dynamic_sidebar( 'sidebar' ); ?>
</div>
<div class="col-md-9 pagination">
<?php pagination_test(); ?>
</div>
</div>
</section>
<!--END #primary .site-main-->
</main>
I've read a million forums and topics on StackOverflow but nothing seems to solve my problem.
When I open the page on the browser the pagination links are shown correctly but after clicking on "next" for the first time, the loop seems to stop. So after the first loop everytime I click "next" it takes me to the SECOND page, which is the most strange error.
Edit #1: the links containing the pages are updating correctly but the page content is always the one from the first page. For example: if I click "next" the link is updated to "site/page/2"..."site/page/3"... but the content stays the same.

Related Links

Displaying Magento coupon code on homepage
Eloquent firstOrNew() query not recognizing parameters passed to it
Change font style from SQL value [closed]
Dynamic textbox in each record in php
What is the right way to setup a database for web applications with big grow potential? [duplicate]
Multidimensional array and aggregate functions in MySQL using PHP?
Get a JSON from url with PHP
Can't get input value from other page
Fatal error instead of 404 page
Varnish 4 - cache all pages
JSON result not displaying selected events from the fullcalendar
how to use zend search lucene document powerpoint?
form validation is not working because of xss_clean
How to fetch multiple images stored in Mysql using php?
Need to fix if statement Laravel [closed]
PHP: Divide a string into parts, and put it into an array

Categories

HOME
openshift
office365
magento2
key
windows-10
plaid
twitter-fabric
malware
visualforce
share
google-search-console
position
timber
slide
vimeo
orc
multi-step
mpu6050
google-tasks-api
codefluent
workday
connection-refused
mime-types
quantitative-finance
chronicle-queue
cell
animated-gif
react-dnd
unrar
iwebbrowser2
riotjs
xerces-c
pdfminer
subclassing
recovery
cheat-engine
google-now
reset
stat
suds
fluid-mac-app-engine
cyanogenmod
ol3-google-maps
scala-breeze
redisson
entropy
webvtt
sequence-diagram
msxml
mpmovieplayercontroller
business-rules
rational-performance-test
nclam
node.js-connect
unsigned
facebook-ios-sdk
jeasyui
urbit
gridbaglayout
as3-api
odesk
miniconda
self
ruby-on-rails-4.1
ora-04091
unhandled
explain
ocmockito
android-audiomanager
debug-symbols
pass-by-value
symja
ildasm
adwords-apiv201402
object-code
visual-c++-2012
webmethod
aho-corasick
android-2.3-gingerbread
redpitaya
rails-api
django-sites
coalesce
objective-c-runtime
microformats
statechart
proc-open
ntlmv2
cyrillic
dojo-1.9
getproperty
quartz-core
yuidoc
differentiation
net-use
bass
jdownloader
reliability
.net-services
mysqli-multi-query
eai
remote-working

Resources

Encrypt Message