De WordPress NextPage tag met pijltjes én paginanummers

Al eerder schreef ik een stukje over de [intlink id=”1253″ type=”post”]NextPage tag[/intlink] in WordPress. Voor een andere website moest ik daar wat verder induiken, want de vormgeefster had was specifieke eisen. Ik ontdekte wat code en kwam eigenlijk niet verder dan dat je kon kiezen tussen een pagina-navigatie met “volgende” en “vorige” of met paginanummertjes. Maar wat ze nu wilden was beide.. en hoe ik ook zoek, ik kon het niet vinden. Het was het één of het ander. Ondertussen had ik in de WordPress Codex wel wat opties gevonden, maar deze kon ik helaas niet combineren. Na wat zoeken op specifieke onderdelen van de code kwam ik op een site terecht waar ik wel verder mee kon: Velvet Blues

De code voor de pagina navigatie is wp_link_pages. Deze kun je in je theme zetten als het nog niet geactiveerd is.

Als eerste was het belangrijk om een stukje code toe te voegen aan mijn functions.php

[php]add_filter(‘wp_link_pages_args’,’add_next_and_number’);[/php]

Standaard kun je in de wp_link_pages kiezen voor “next” of “number”….in de array heb je dan de regel:

[php]

wp_link_pages (array(‘next_or_number’=>’next’)[/php]

of

[php]

wp_link_pages (array(‘next_or_number’=>’number’)[/php]

Met de code die ik op die pagina heb gevonden kun je een derde optie toevoegen, namelijk:

[php]

wp_link_pages (array(‘next_or_number’=>’next_and_number’)[/php]

Waarmee je iets krijgt als:

<< 1  2  3  4 >>

De gehele code is dan:

[php]

add_filter(‘wp_link_pages_args’,’add_next_and_number’);

function add_next_and_number($args){

if($args[‘next_or_number’] == ‘next_and_number’){

global $page, $numpages, $multipage, $more, $pagenow;

$args[‘next_or_number’] = ‘number’;

$prev = ”;

$next = ”;

if ( $multipage ) {

if ( $more ) {

$i = $page – 1;

if ( $i && $more ) {

$prev .= _wp_link_page($i);

$prev .= $args[‘link_before’]. $args[‘previouspagelink’] . $args[‘link_after’] . ‘</a>’;

}

$i = $page + 1;

if ( $i <= $numpages && $more ) {

$next .= _wp_link_page($i);

$next .= $args[‘link_before’]. $args[‘nextpagelink’] . $args[‘link_after’] . ‘</a>’;

}

}

}

$args[‘before’] = $args[‘before’].$prev;

$args[‘after’] = $next.$args[‘after’];

}

return $args;

}

/*  einde van deze function*/

[/php]

Bij wp_link_pages de array:

[php]
wp_link_pages( array(

‘before’ => ‘<p>’,

‘next_or_number’ => ‘next_and_number’,

‘after’ => ‘</p>’,

‘nextpagelink’=> ‘&raquo;’,

‘previouspagelink’=> ‘&laquo;’,

‘pagelink’=> ‘<span class="hierdeclass"> % </span>’

));
[/php]
Waarbij je natuurlijk de wp_link_pages nog verder kunt uitbreiden, zoals zelf je nextpagelink ed kunt bepalen.

2 reacties

    • Jammer om te horen. Het is ook al een ouder bericht en het kan zijn dat ondertussen in de laatste versie van WordPress wat dingen zijn gewijzigd. Gelukkig is dit snel weer op te lossen. Verwijder simpelweg de code weer uit de functions.php

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *