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

PHP application took longer time to respond [closed]
Code explanation - array of arrays stored in php $GLOBALS variable
Finding a single user record in some incomplete data?
How to get the shortest latLng on geocoder in PHP?
TCPDF / FPDI / FPDF Image size is wrong
How to handle Doctrine2 entities defined in composer dependencies
SMTP -> ERROR: Failed to connect to server: The following From address failed: : Called Mail() without being connected Mailer Error
How can I update children, grouped with id “X”, using simpleXML
preg_match to find postal address
How to paginate results?
Put image from server in list (Android app)
WordPress Advanced Custom Fields - Meta Query no result
Capturing pipe symbol delimited digits with regex
Sending data to database query using AJAX
Gmail considering my email as phishing?
How can I feed input from a <select multiple> element into a (MySQL) stored procedure?

Categories

HOME
php
svn
azure-functions
weblogic12c
typelite
mpdf
couchdb
embedded-resource
moodle-api
openfoam
angular-meteor
ui-automation
minecraft
sympy
scheduler
polymer-2.x
wine
solution
locationmanager
erd
amazon-elb
complexity-theory
dma
asp.net-core-1.0
async-await
fresco
string-formatting
opam
altium-designer
multi-upload
fusetools
list-comprehension
math.js
miniprofiler
sendmessage
cube
progid
riotjs
appcode
shapeless
counting
buildforge
testlink
tidal-scheduler
google-now
task-parallel-library
system-on-chip
oauth2-playground
vb.net-to-c#
type-inference
nomad
jshint
axis
wysihtml5
webalizer
non-linear-regression
nusoap
sharpdx
watir-webdriver
glassfish-4.1
zend-server
degrees
business-rules
wildfly-9
elastic4s
logical
ndk-build
dcount
qtcpsocket
perforce-integrate
meld
verisign
ambiguity
wso2ml
darwin
phpredis
console.log
whitespace-language
python-curses
jolie
string.format
cout
device-admin
ecos
prism.js
code-complexity
senchatouch-2.4
principalcontext
xsd2code
stty
axacropdf
asp.net-mvc-3-areas
ntlmv2
significant-digits
stretch
clearinterval
sfinae
word-frequency
zotonic
fitch-proofs
fbml
drawimage
getopts
firefly-mv
botnet
database-deadlocks
winsxs
sql-parametrized-query
cewolf
fragment-identifier
solandra
icicles
powergui
downcasting
efs
code-camp
rootkit

Resources

Encrypt Message



code
soft
python
ios
c
html
jquery
cloud
mobile