Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Wordpress probleem met archive loop

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben een website aan het maken met een aparte blog sectie. Ik heb een loop gemaakt die ik op de blogpagina (speciale template die ik via een page aanroep) goed werkt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$style_classes = array('span5 odd', 'span7 even');
$styles_count = count($style_classes);
$style_index = 0;
[b]$wp_query->query('posts_per_page=10'.'&paged='.$paged);[/b]
while ( have_posts() ) : the_post(); ?>

<article id="post-<?php the_ID();?>" class="<?php $k = $style_index % $styles_count; echo "$style_classes[$k]"; $style_index++; ?>">

Content van de post..

</article>
<?php endwhile; ?>

<?php numeric_pagination(); ?>


Het probleem wat ik nu heb is dat deze loop niet werkt goed op de archive.php pagina. De loop toont op de archive nu alle postst zonder rekening te houden met de categorie waar de gebruiker in zit. Op het moment dat ik de dikgedrukte code weglaat werkt de loop wel (toont de juiste posts uit de category) maar maakt het geen paginering aan omdat de paginering niet wordt opgeroepen natuurlijk ;)

Ook als ik het aantal posts via de settings van Wordpress regel en alleen de paginering aanroep zonder post_per_page werkt de paginering niet.

Wat gaat er fout bij mijn archive loop waardoor de paginering niet werkt? Ik zag wel voorbeelden van loops die een specifieke cat aanroepen met bijvoorbeeld: 'cat=1&tag=apples' maar dit is niet de juiste oplossing en niet dynamisch.

P.S. De pagination wordt opgebouwd in de functions.php en is gebaseerd op de Kriesi.at pagination en werkt gewoon goed op alle pagina's behalve archive.

  • Nedra
  • Registratie: Juli 2006
  • Laatst online: 17-10-2023
Ik denk dat je hier wel wat aan hebt:

http://wordpress.stackexc...ation-on-archive-php-page

Sowieso, google even op 'wp query archive.php pagination' en gij zult vinden.

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 21-11 15:31

TheNephilim

Wtfuzzle

Als je de query aan wil passen, moet je de oude query ook gebruiken: query_posts("{$query_string}&posts_per_page=10&paged={$paged}");

Op deze manier gebruik je de standaard query, maar voeg je parameters toe. Dus $wp_query->query('posts_per_page=10'.'&paged='.$paged); vervangen door bovenstaande.

[ Voor 18% gewijzigd door TheNephilim op 14-06-2013 14:02 ]


Verwijderd

Topicstarter
TheNephilim schreef op vrijdag 14 juni 2013 @ 14:02:
Als je de query aan wil passen, moet je de oude query ook gebruiken: query_posts("{$query_string}&posts_per_page=10&paged={$paged}");

Op deze manier gebruik je de standaard query, maar voeg je parameters toe. Dus $wp_query->query('posts_per_page=10'.'&paged='.$paged); vervangen door bovenstaande.
Dankjewel! Dit heeft mij heel erg op weg geholpen. In eerste instantie werden de juiste posts ingeladen maar ging de paginering naar een 404 pagina.

Maar als je in het CMS bij instellingen > lezen: Sitepagina's tonen maximaal: zorgt dat dit niet meer is dan het aantal wat in posts_per_page is dan gaat de loop helemaal goed.

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 21-11 15:31

TheNephilim

Wtfuzzle

Gelukkig! :D

Van je tweede alinea snap ik niet zoveel, maar volgens mij is je probleem opgelost? :+

Doe zelf eigenlijk niks met die instellingen, kan ook nog per thema verschillen trouwens. Meestal regel ik zelf een paginering. Er zijn aardig wat functies die daarbij kunnen helpen.

Verwijderd

Topicstarter
Ik gebruik de pagination vanuit deze tutorial:
http://www.kriesi.at/arch...pagination-without-plugin

Vroeger ging ik vaak voor wp_paginate of een andere numerieke paginate plugin, maar dan was je vrij beperkt in de opbouw zonder in de core-files te sleutelen.

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 21-11 15:31

TheNephilim

Wtfuzzle

Gewoon vanuit de Wordpress core kun je ook heel makkelijk paginering regelen. paginate_links() is de functie die ik er meestal voor gebruik.

PHP:
1
2
3
4
5
6
7
8
// Display page numbers
echo paginate_links(array(
    'base' => site_url().'/projecten%_%',
    'format' => '/pagina/%#%',
    'current' => max(1, get_query_var('paged')),
    'total' => $wp_query->max_num_pages,
    'type' => 'list'
));


/projecten is een archief, op de plek van %_% komt dan /pagina/%#% waarvan het laatste gedeelte weer het paginanummer is. Om /pagina te gebruiken moet je die wel zelf rewriten naar /page, anders begrijpt Wordpress er niks van.
Pagina: 1