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

Wordpress theme mods api and update
How do you enable multithreading on nginx and apache
How to sort an array from linear distribution to normal distribution in PHP?
How to convert a PHP DOMElement into a PHP DOMNodeList
Why i cannot set my db table with a code one by one in php?
how to pass custom fields to $_POST or $_GET in CKEdtior Upload dialog?
Access local parameters from module services and controllers
define to_date symfony2 doctrine
if(isset($_POST['Submit'])){} Not working
How can I make my radio checkbox's only be allowed one check per row in my table
filesmatch htaccess convert to nginx (on plesk)
Fetching orders details throught flipkart api using PHP(how to recall function without rewrite function declaration)
how base64 converts characters that aren't existing in its character list?
How to read data from XML file using php
How can I limit the parameters of the GET values to the ones in my array?
configure php from Redhat to connect to MS SQL Server

Categories

HOME
ionic2
protocol-buffers
mc
angular-ui-grid
schema.org
loopbackjs
visual-studio-2010
websocket
bellman-ford
wine
lc3
grocery-crud
xbox360
texas-instruments
nest-api
tomcat8
bluemix-mobile-services
data-type-conversion
workday
dashdb
hdl
pdf.js
mod-wsgi
unordered-multimap
password-generator
cellular-network
google-play-developer-api
sql-execution-plan
autoencoder
pdfminer
ms-solver-foundation
android-n
task-parallel-library
contactless-smartcard
morphline
kitura
gtk#
google-news
mongodb-aggregation
emf-compare
d3v4
finder
email-injection
gawk
controllers
java-2d
msg
jpda
bbc-micro
ajaxmin
node-glob
as3-api
jsr363
management-studio-express
voronoi
ioexception
lovefield
pythonxy
postal-code
dynamics-ax-2012-r2
domino-designer-eclipse
debug-symbols
jolie
ildasm
device-admin
tabris
box2dweb
git-reset
neo4jphp
refit
nodeload
django-sites
assetic
progress-db
ember-table
proc-open
oembed
user-forums
system-requirements
gitx
nsmutablestring
instance-variables
getopt-long
uitextfielddelegate
gamesalad
liveconnect
servlet-container
ccl
activestate
icicles
wmd-editor
version-control-migration
jboss-mdb
chronic
rendering-engine
webclient.uploaddata
synthesizer

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