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

Use multiple name for an input type
How to review changes before making a record go live. Laravel, PHP
Adding “Related Products” to a custom tab in WooCommerce
Other files than php files not being processed; php-fpm
File request returns error 500
Display Banner after mysql first result
spl_autoload_register couldn't get “use” namespace
How do I retrieve an array value created in a PHP function?
Add space before question mark and exclamation mark
Set timezone according to different country locale wise in php
WordPress: Ajax response overwrites the whole page
PHP file temporarily unavailable
Simplified anarchy “if statement”
swift 3: Get rtf formatted text from MySQL
Doctrine queryBuilder: SQL Injection risk in addOrderBy() method?
Data table error

Categories

HOME
firebase
windows-8.1
cucumber
barcode-scanner
d3.js
activemq
websocket
apache-kafka-connect
repair
tup
tiff
business-intelligence
bundler
django-rq
global-variables
user-defined-types
jest
opam
libgit2
gitkraken
animated-gif
react-dnd
fusetools
plyr
multi-dimensional-scaling
fstar
list-comprehension
iwebbrowser2
miniprofiler
unmarshalling
windowsiot
reporting
knights-tour
microsoft-certifications
cloudera-manager
winrm
restful-architecture
redgate
runtimeexception
ms-dos
eclipse-gmf
android-alarms
oauth2-playground
spooler
latexml
bit-shift
dredd
gestures
solr-query-syntax
android-sharing
emacs25
http4s
fitbit
boost-compute
cefpython
openquery
dcount
django-testing
carmen
jtag
dojo-build
static-methods
verisign
gwt-syncproxy
voronoi
lovefield
arbre
nastran
highest
embeddedwebserver
prism-4
text-align
dnsjava
libgcc
aho-corasick
otl
nachos
redpitaya
.htpasswd
sql-function
cidr
cpu-time
spring-social-linkedin
meteorite
sensormanager
unrealscript
google-code-prettify
pacman
microformats
delphi-xe4
ofstream
asp.net-mvc-3-areas
session-0-isolation
office-app
getopt-long
firebird1.5
fbml
azure-acs
upshot
dip
cassini
aggregator
tessellation
android-input-method
community-server
error-detection

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App