it-swarm.com.de

Paginierungsprobleme mit dem WP_Paginate-Plugin

Ich habe also mehr Beiträge und Artikel zu diesem Thema gelesen, als ich zugeben möchte, und immer noch nichts, was ich finden kann. Hier ist das Problem - ich kann die Paginierung nicht voranbringen und es werden immer und immer wieder dieselben Posts angezeigt - wie ich es in anderen Posts gesehen habe.

Folgendes verwende ich (2 separate Vorlagen für verschiedene Kategorien):

<?php
$paged = get_query_var( 'page' );
query_posts('cat=4&paged='.$paged);
if(have_posts()) { while(have_posts()) { the_post(); 
?>

Es funktioniert gut, aber dann gehe ich zu der einzigen anderen Seite auf der Website - die den gleichen Code in der Schleife verwendet, andere Kategorie (3) und es funktioniert dort nicht, es ist kein Tippfehler usw.

Ich habe auch Folgendes satt:

if(have_posts()){
  $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
 query_posts($query_string . "&cat=4");
  while(have_posts()){
  the_post();
  global $more;
  $more = 0;

OR

query_posts('cat=3&paged='.get_current_page());
  if(have_posts()){
  while(have_posts()){
  the_post();
  global $more;
  $more = 0;

Mit der Funktion get_current_page habe ich diesen Hack verwendet, von dem mir gesagt wurde, dass WPVIP nicht die Art ist, Dinge zu tun (aber es hat für beide Seiten funktioniert):

/* Get current page for paginaton navigation */ 
function current_page() {
 $pageURL = 'http';
 //check what if its secure or not
 if ($_SERVER["HTTPS"] == "on") {
 $pageURL .= "s";
 }
 //add the protocol
 $pageURL .= "://";
 //check what port we are on
 if ($_SERVER["SERVER_PORT"] != "80") {
 $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
 $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 //cut off everything on the URL except the last 3 characters
 $urlEnd = substr($pageURL, -3);
 //strip off the two forward shashes
 $page = str_replace("/", "", $urlEnd);
 //return just the number
 return $page;
 }
1
Chris

Ihre Lösung hier ist am korrektesten.

    if(have_posts()){ $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts($query_string . "&cat=4"); 
while(have_posts()){ 
the_post(); global $more; $more = 0;

... hat aber einige Fehler. Versuchen:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$category = get_category_by_slug('your-category-slug');
query_posts(array('paged' => $paged, 'cat' => $category->term_id)); 
while(have_posts()){ 
    the_post(); 
    global $more; 
    $more = 0;
    //output here
}

Beachten Sie, dass die direkte Verwendung der Kategorie-ID bei WP VIP nicht funktioniert. Die Kategorie-IDs stimmen nicht mit Ihren lokalen IDs überein.

1
prettyboymp