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

Laravel login error 'Header may not contain more than a single header, new line detected laravel login'
Codeigniter command line can't inset to database
how to remove font awesome from my page load
How to display PDO rows results vertically?
Unable to get the post value after submitting form in codeigniter
c# - webclient streamreader returns empty
Is namespacing in SilverStripe 3.x recommended?
Unable to get particular rows from database that match conditions in PDO
PayPal IPN not working after payment redirect to success URL
PHP Code for selecting data from mySQL Database for Amazon web services [duplicate]
Curl API Request with PHP - long response
Connecting to Redis with Predis behind proxy
phpdocumenter is not working
Explode the word from sentence regardless of any special characters using PHP regular expression
Wordpress download_url() with local files import
I am having a issue with form updating/editing Wordpress post on the frontend

Categories

HOME
artificial-intelligence
protocol-buffers
memory
bokeh
kendo-dropdown
couchdb
selenium-builder
key
devexpress
plaid
informatica
google-webmaster-tools
visualforce
capistrano
fedora
stored-procedures
ui-automation
polymer-2.x
azure-logic-apps
tiff
business-intelligence
mpu6050
dma
bnf
google-cloud-logging
gmp
tfsbuild
coroutine
bazaar
parceler
cmake-gui
spring-shell
gitkraken
neo4j.rb
generator
chronicle-queue
animated-gif
cellular-network
offline-caching
ruby-daemons
uilocalnotification
ibm-connections
mdns
social-networking
monitor
nic
windowsiot
argv
knights-tour
cloudera-manager
wdk
gitolite
linq.js
flipkart
fluid-mac-app-engine
dbcc
sendinput
permission-denied
doctrine-extensions
return-type
libreoffice-writer
phppgadmin
redisson
entropy
maven-jaxb2-plugin
gnome-terminal
portability
email-forwarding
swiperefreshlayout
hmmlearn
wildfly-9
google-identity-toolkit
visual-studio-monaco
jsf-2.3
wininet
nunit-console
deferred-rendering
unsigned
ajaxmin
simian
bayesglm
mixins
google-gdk
abstract-factory
nssortdescriptor
ssmtp
mojo
operands
string.format
flurry-analytics
xml-signature
webautomation
wso2bam
boolean-algebra
usb-flash-drive
typesafe-stack
particle-swarm
facebook-game-groups
hyphen
indesign-server
jquery-lazyload
idispatch
xcode4.5
story
telerik-ajax
trialware
play2-mini
mongrel
resharper-5.0
ppc
spring-modules
external-sorting
tacit-programming
rtti
comment-conventions

Resources

Encrypt Message