wp_pagenavi() cu interogare wp_query() personalizată?

17 feb. 2011, 06:21:37
Vizualizări: 50.7K
Voturi: 6
<?php
/*
Template Name: Projects
*/
?>

<?php get_header();?>

    <section id="content">
        <section id="main">

            <?php
                $loop = new WP_Query(array('post_type' => 'projects', 'posts_per_page' => 4));
                $i=1;
                while ( $loop->have_posts() ) : $loop->the_post();
            ?>

            <article class="post<?php if($i%2 == 0) { echo ' right'; }; $i++; ?>" id="post-<?php the_ID(); ?>">
                <h2><?php the_title(); ?></h2>
                <section class="entry">
                    <?php the_excerpt(); ?>
                </section>
            </article>

            <?php
                endwhile;
                wp_pagenavi();
            ?>

            <section id="map">
                <img src="<?php bloginfo('template_url') ?>/images/interactive-map.jpg" alt="Hartă Interactivă" title="Hartă Interactivă" />
            </section>
        </section>

<?php get_sidebar(); ?>

    </section>

<?php get_footer(); ?>

Am configurat pagenavi imediat după endwhile. Totuși, nu funcționează. Știe cineva cum pot face să funcționeze?

4
Comentarii

vezi - http://wordpress.stackexchange.com/questions/4696/pagination-not-working-with-custom-loop (practic trebuie să preiei variabila globală $wp_query și să o folosești în loc de $loop

onetrickpony onetrickpony
17 feb. 2011 07:01:36

Am urmat instrucțiunile de acolo și acum apare navigația, dar când merg la pagina 2, primesc o eroare. Iată pastebin-ul cu ce am făcut. Dacă poți să arunci o privire și să-mi spui dacă observi ceva greșit, aș fi recunoscător pe viață. Mulțumesc. http://pastebin.com/RMZaE6Pi

J82 J82
17 feb. 2011 07:52:56

ce eroare primești?

Bainternet Bainternet
17 feb. 2011 11:45:56

@One Trick Pony: Poți muta comentariul tău într-un răspuns, astfel încât John să-l poată accepta? Poate include și comentariul meu în răspunsul referențiat, deoarece cu noua versiune de WP-Pagenavi poți pasa un argument query. John a pus o întrebare suplimentară pentru a face paginarea să funcționeze.

Jan Fabry Jan Fabry
17 feb. 2011 16:29:28
Toate răspunsurile la întrebare 2
10
19
wp_pagenavi( array( 'query' => $loop ) );

ar trebui să funcționeze cu codul de mai sus. Nu suprascrie interogarea principală dacă poți evita acest lucru.

17 feb. 2011 16:28:20
Comentarii

Sursa mea pentru asta: http://plugins.trac.wordpress.org/browser/wp-pagenavi/trunk/core.php#L3

John P Bloch John P Bloch
17 feb. 2011 16:29:13

Într-adevăr, versiunea de dezvoltare a WP Pagenavi (2.74-alpha) suportă această funcționalitate.

scribu scribu
17 feb. 2011 16:34:08

Oh, nu mi-am dat seama că aceasta era versiunea de dezvoltare. Ups!

John P Bloch John P Bloch
17 feb. 2011 16:37:41

este posibil acest lucru cu paginate_links() ?

onetrickpony onetrickpony
17 feb. 2011 16:46:15

paginate_links este ceva mai simplu. În loc să-i dai un obiect de interogare, îi spui care este numărul maxim de pagini, care este pagina curentă și câțiva alți parametri (cum ar fi formatul URL-ului, etc.)

John P Bloch John P Bloch
17 feb. 2011 16:56:16

@John P Bloch: Tocmai l-am lansat: http://scribu.net/wordpress/wp-pagenavi/wpn-2-74.html :)

scribu scribu
17 feb. 2011 17:09:58

@scribu: l-am testat cu un tip de postare personalizată și paginarea nu obține pagina activă dacă > 1, când permalinkurile sunt activate. Poate este legat de asta: http://wordpress.stackexchange.com/questions/9537/pretty-paged-permalinks-in-custom-post-type-loop

onetrickpony onetrickpony
17 feb. 2011 17:57:10

Ai inclus 'paged'? Dacă da, ar trebui să pui o nouă întrebare, cu un exemplu de cod atașat. De asemenea, nu da vina pe pagenavi; el doar generează linkuri. :)

scribu scribu
17 feb. 2011 18:01:59

da. nu are rost să deschid o nouă întrebare deoarece nu mai folosesc pluginul, doar subliniez că nu suportă complet cpt. Ar trebui să adaugi un alt argument la wp_pagenavi(), cum ar fi 'current' în care poți trimite pagina curentă, de ex. get_permalink()

onetrickpony onetrickpony
17 feb. 2011 19:22:19

@john: am avut aceeași problemă în timp ce foloseam offset într-o interogare personalizată de postări. te rog ajută-mă! $loop = new WP_Query(array("paged=".get_query_var('paged')."&offset=1"));

Gowri Gowri
3 iun. 2011 10:27:24
Arată celelalte 5 comentarii
0
-1
<?php       // Paginație
        if(function_exists('wp_pagenavi')) :
            wp_pagenavi( array( 'query' => $blog_posts_query ) );
        else : ?>
            <div class="navigation">
                <div class="alignleft"><?php previous_posts_link() ?></div>
                <div class="alignright"><?php next_posts_link() ?></div>
            </div>
<?php       endif;

                // Restabilirea datelor originale Post
                wp_reset_postdata(); ?>
23 mar. 2018 15:58:01