wake-up-neo.com

Benutzerdefinierte Taxonomie funktioniert nicht mit posts_per_page in neuer WP_query (Paginierungsproblem)

OK, also bin ich zum zweiten Mal mit benutzerdefinierten Taxonomien beschäftigt und in beiden Fällen bin ich auf dieses Problem gestoßen, bei dem das Argument posts_per_page entweder in einem query_posts- oder in einem WP_query-Szenario verwendet wurde Wenn ich auf die Schaltflächen "Weiter" oder "Zurück" klicke, erhalte ich 404-Fehler. Es spielt keine Rolle, ob ich eine benutzerdefinierte Permalink-Struktur oder eine der Standardeinstellungen verwende, das gleiche Ergebnis. Die einzige Möglichkeit, die Anzahl der Beiträge auf einer Seite erfolgreich zu steuern, besteht in den Leseeinstellungen im Dashboard.

ich habe eine ganze Reihe von Erwähnungen zu diesem Problem gefunden, aber abgesehen von den oben genannten Dashboard-Einstellungen muss ich noch eine funktionierende Lösung finden:

wordpress.org/support/topic/custom-taxonomy-navigation-problem-paged1-works-paged2-doesnt?replies=8#post-2093828

core.trac.wordpress.org/ticket/16168

wordpress.org/support/topic/custom-taxonomies-with-pagination-getting-404-page-not-found?replies=6#post-2093414

also, hier ist die Seite, an der ich mit dem Problem arbeite:

http://www.purekreation.com (Klicken Sie auf einen der Abschnitte in der Navigation und versuchen Sie dann, zu den vorherigen Seiten unten zu navigieren)

und hier ist mein aktueller (nicht funktionierender) Code:

    <?php get_header(); ?>

    <div id="art">

        <?php global $query_string, $paged, $wp_query, $wp;
        $count = 0;
        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        echo $paged;
        ?>
        <?php $term = get_query_var('term'); echo $term;?>
        <?php $tax = get_query_var('taxonomy'); echo $tax;?>
        <?php
        $taxquery=new WP_Query(array('tax_query'=>array(array('taxonomy'=>$tax,'field'=>'slug','terms'=>$term)),'post_type'=>'art','showposts'=>1,'paged'=>$paged));
        while ( $taxquery->have_posts() ) : $taxquery->the_post(); ?>

    <?php $genre = wp_get_post_terms($post->ID, 'genre');?>
        <div id="post-<?php the_ID(); ?>" <?php post_class('post-'.$genre[0]->slug.' post-art');?>> 
            <h3 class="work-title"><?php the_title();?></h3>
            <?php get_the_10(); ?>
            <div class="the-content">
                <?php the_content(); ?>
            </div>
            <footer class="COL-10 clear">
                <small class="post-meta"><?php $terms = get_the_term_list( $post->ID, 'genre', 'Portfolio: ', ' ', '' );  echo $terms;?></small>
                <small class="post-meta">Project: <?php the_tags( '',', ','');?></small>
                <small class="post-meta">Client: <?php $meta = get_post_meta($post->ID, 'client', true); if($meta==''){echo 'Self';}else{echo $meta;}?></small>
                <small class="post-meta right"><a href="#masthead">Back to top</a></small>
                <div class="dash"></div>
            </footer>
        </div><!-- #post-## -->    
        <?php $count++; ?>
        <?php endwhile; ?>
                        <div id="nav-below" class="pagination">
        <?php if($taxquery->max_num_pages>1){?>
            <?php
            for($i=1;$i<=$taxquery->max_num_pages;$i++){?>
                    <a href="<?php bloginfo('url');?>/?<?php echo $tax;?>=<?php echo $term;?>&<?php echo 'paged=' . $i; ?>" <?php echo ($paged==$i)? 'class="selected"':'';?>><?php echo $i;?></a>
                    <?php
            }
            if($paged!=$taxquery->max_num_pages){?>
                    <a href="<?php bloginfo('url');?>/?<?php echo $tax;?>=<?php echo $term;?>&<?php echo 'paged=' . $i; //next link ?>">></a>
            <?php } ?>
    <?php } ?>
                        </div>
            <?php // Reset Post Data
            wp_reset_postdata();
             // End the loop. Whew.?>
    </div><!-- end #art -->
    <?php get_footer(); ?>

ich bin nicht der geschickteste PHP Typ, aber ich kenne eine anständige Menge über Wordpress und dieses Problem lässt mich buchstäblich den Schlaf verlieren. Wenn jemand einen Beitrag zu dieser Angelegenheit leistet, wäre er sehr dankbar.

5
J. Millington

sollte es sein..

$paged = (get_query_var('page')) ? get_query_var('page') : 1;

WP_Query im Codex:

Paginierung Hinweis: Sie sollten get_query_var ('page') setzen. Wenn Sie möchten, dass Ihre Abfrage mit Paginierung arbeitet. Seit Wordpress 3.0.2 verwenden Sie get_query_var ('page') anstelle von get_query_var ('paged'). Der Paginierungsparameter 'paged' für WP_Query () bleibt gleich.

6
Milo