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 SimpleXMLElement XPath Selection
PHP Unexpected T_encapsed [closed]
How to echo this specific value from a Database
Embedding a php function within a php form template variable
Yii - PHP error after content saying that LogDetailFilter couldn’t be found
mysql query , gives me wrong number of rows am after
How do I include a range of lines of a file in php?
How to display and manipulate visual objects in a web app?
Please help me with my comment sections sql query
How to extract data from this JSON ? [closed]
Image cropping and thumb creation
How to draw a name in a database [duplicate]
PHP: Generating category/subcategory UL list from array?
wikipedia servers gzip content
How to escape ' in setParameter
onclick submit check php

Categories

HOME
extjs
matrix
focus
barcode-scanner
activemq
message-queue
hdfs
braintree
docker-cloud
google-webmaster-tools
vue-resource
linker
impala
onvif
wine
solution
slide
pm2
freertos
pushdown-automaton
amazon-elb
synthesis
phonegap-build
varnish-vcl
significance
pfobject
spyder
el
backtracking
fluent-migrator
candlestick-chart
firemonkey-style
acrobat
miniprofiler
ninject
intune
google-play-developer-api
gsp
counting
android-canvas
busboy
cloudera-quickstart-vm
sbjson
oauth2
grails-spring-security
audio-converter
flume-twitter
axis
liteide
icecast
uiautomatorviewer
lightning-workbench
amazon-elastic-beanstalk
skip-lists
gtk#
nrf51
mifos
thread-exceptions
okio
uibinder
distributed-cache
highest
asp.net-web-api-helppages
sqlbase
compositetype
ocmockito
mxe
rubber
windows-messages
git-reset
csslint
miglayout
hotswap
autonumber
ggts
boinc
non-ascii-characters
stty
libxml-js
form-for
ax
node.js-stream
blobstorage
android-authenticator
session-0-isolation
gprof
multiscaleimage
workflow-manager-1.x
thejit
kolite
server-variables
net-use
filelock
nsrangeexception
startupscript
canonicalization
azure-acs
servlet-container
mongrel2
downgrade
jdownloader
fgetc
rational-unified-process
ppc
jboss-mdb
activex-exe
remote-working

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