Ondersteuning » Code oplossingen gezocht » query_posts('cat=1'); met pagination werkt niet

  • De pagina nummering “pagination” werkt niet met query_post. Ik heb al verschillende oplossingen gevonden in de codex en op andere wordpress forums maar geen lijken te werken bij mijn code.

    Hier een aantal links van deze oplossingen:
    http://buzz.hyperspective.com/?p=7
    http://codex.wordpress.org/Function_Reference/query_posts
    http://wordpress.org/support/topic/pagination-doesnt-work?replies=6

    Hieronder mijn code (zonder dat ik er een oplossing op heb toegepast), kan een van jullie zien wat er fout gaat?

    <div class="entry">
    	<h2 class="artikelen">Artikelen:</h2>
    	<?php
    		query_posts('cat=1');
    		while (have_posts()) : the_post();?>
            <div class="preview">
    		<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
    		<?php the_excerpt();
    		endwhile;
    	?>
    </div>
    <div class="clear"></div>
    <div id="pagination">
       	<?php
    		global $wp_query;
    		$big = 999999999; // need an unlikely integer
    
    		echo paginate_links( array(
    		'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
    		'format' => '?paged=%#%',
    		'current' => max( 1, get_query_var('paged') ),
    		'prev_text' => '«',
    		'next_text' => '»',
    		'total' => $wp_query->max_num_pages
    		) );
    	?>
    </div>
13 reacties aan het bekijken - 1 tot 13 (van in totaal 13)
  • @donutz,

    Worden reeds bestaande websites dan ineens een Error of blijft de functie wel nog werken alleen niet meer aangeraden ?

    Ik ben toevallig bezig met op een homepage verschillende kolommen met verschillende posts te tonen doe ik het dan niet meer goed op deze manier ?

    Kolom #1

    <?php query_posts('category_name=featured&posts_per_page=3'); ?>
    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    <h2><?php the_title(); ?></h2>
    <?php endwhile; ?>
    <?php endif; ?>

    Kolom #2

    <?php query_posts('category_name=books&posts_per_page=8'); ?>
    <?php rewind_posts(); ?>
    <?php while (have_posts()) : the_post(); ?>
    <h3><?php the_title(); ?></h3>
    <?php endwhile; ?>

    Kolom #3

    <?php query_posts('category_name=films&posts_per_page=5'); ?>
    <?php rewind_posts(); ?>
    <?php while (have_posts()) : the_post(); ?>
    <h3><?php the_title(); ?></h3>
    <?php endwhile; ?>

    @shmoo, query_posts zal zeker nog een tijdje blijven werken, maar zal (met debug aan) een deprecated notice veroorzaken, e.g. “… is niet meer in gebruik sinds versie …”

    Custom queries zoals hierboven tover je het best tevoorschijn met get_posts of wp_query

    <ul>
        <?php
            $blogs = get_posts( array(
                'numberposts' => 3,
                'category' => 8
            ) );
            foreach( $blogs as $blog ) :
                echo '<li><a href="' . get_permalink( $blog->ID ) . '">' . $blog->post_title . '</a></li>';
            endforeach;
            wp_reset_postdata();
        ?>
    </ul>

    Thanks ik ga het gelijk even goed doen dat voorkomt later weer wat werk.

    Nog een klein vraagje aangezien ik met een locale en online versie werk en ik daardoor niet dezelfde Categorie ID’s heb mag dit ook?

    Het lijkt wel gewoon te werken..

    <ul>
        <?php
            $blogs = get_posts( array(
                'numberposts' => 3,
                'category_name' => 'featured'
            ) );
            foreach( $blogs as $blog ) :
                echo '<li><a href="' . get_permalink( $blog->ID ) . '">' . $blog->post_title . '</a></li>';
            endforeach;
            wp_reset_postdata();
        ?>
    </ul>

    Zeker, get_posts is eig. gewoon een wrapper voor wp_query, dus je kan in principe alle wp_query args gebruiken met get_posts, voor categorieën: http://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters

    Gaaf, ik moet me binnenkort eens echt wat meer in PHP gaan verdiepen .

    Thread starter d@nny

    (@dnny)

    Bedankt voor de reacties, ik zal er binnenkort naar kijken na alle drukke feestdagen. Alvast een fijne jaar wisseling 😉

    Thread starter d@nny

    (@dnny)

    Waar of hoe moet ik mijn paginanummering aangeven als ik deze code gebruikt?

    <ul>
        <?php
            $blogs = get_posts( array(
                'numberposts' => 3,
                'category' => 8
            ) );
            foreach( $blogs as $blog ) :
                echo '<li><a href="' . get_permalink( $blog->ID ) . '">' . $blog->post_title . '</a></li>';
            endforeach;
            wp_reset_postdata();
        ?>
    </ul>

    Je kunt aan get_posts een extra argument meegeven:
    ‘paged’ => $paged

    Bovenaan denk ik dat je nog even
    global $paged;
    moet opgeven. Volgens mij is het een WordPress variabele.

    Ik denk dat je beter met wp_query zou werken:

    <ul>
    <?php
        $blogs = new WP_Query( array(
            'category' => 8,
            'posts_per_page' => 10,
            'paged' => $paged
        ) );
        while ( $blogs->have_posts() ) : $blogs->the_post();
    ?>
        <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    <?php
        endwhile;
    ?>
    </ul>
    Thread starter d@nny

    (@dnny)

    Oke dank, ik heb nu een WP_Query gebruikt maar ik krijg de pagina nummering niet echt aan de praat.

    Ik wil graag een pagina nummering zoals: << 1 2 3 4 >>
    Dus zet ik dit direct onder mijn WP-Query waar ik wil dat het komt te staan. Wat doe ik nog fout…

    <?php
    	global $wp_query;
    	$big = 999999999; // need an unlikely integer
    
    	echo paginate_links( array(
    	'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
    	'format' => '?paged=%#%',
    	'current' => max( 1, get_query_var('paged') ),
    	'prev_text' => '«',
    	'next_text' => '»',
    	'total' => $wp_query->max_num_pages
    	) );
    ?>

    Om het makkelijk te maken, installeer de WP-PageNavi plugin en gebruik volgende code:

    <?php wp_pagenavi( array(
    	'query' =>$blogs
    ) ); ?>
13 reacties aan het bekijken - 1 tot 13 (van in totaal 13)
  • Het onderwerp ‘query_posts('cat=1'); met pagination werkt niet’ is gesloten voor nieuwe reacties.