it-swarm.com.de

Anzahl der Beiträge pro Seite funktioniert nicht?

OK, hier ist mein Problem. Ich habe eine statische Homepage und eine separate Posts-Seite auf meiner WordPress-Site. Ich habe die beiden im Admin-Panel definiert. Jetzt habe ich auch die maximale Anzahl der anzuzeigenden Beiträge auf 5 gesetzt (in Einstellungen> Lesen), aber alle Beiträge (10+) werden weiterhin auf der Blog-Seite angezeigt.

Ich zeige auch die letzten 3 Beiträge auf der statischen Homepage mit einer benutzerdefinierten Abfrage. d.h.

$wp_query = new WP_Query( array( 'posts_per_page' =>3));

<results loop code>

Aber diese Liste zeigt auch mehr als 3 Beiträge an. Es scheint, dass WordPress das posts_per_page-Limit ignoriert, das ich im Admin-Bereich oder über Code festgelegt habe. Was zur Hölle ist los? Dies ist mein erstes Mal, dass ich WordPress für die Entwicklung einer Website benutze. Ist das ein häufiges Problem für Noobs?

BEARBEITEN:

Ich habe gerade die statische Homepage freigelegt und einen einfachen Codeblock hinterlassen, der einfach die Titel der Beiträge abruft. Es werden noch mehr als 3 Beiträge zurückgesendet. Hier ist der aktuelle (und einzige) Code auf der Homepage:

<div id="content">

  <?php $wp_query = new WP_Query( array( 'posts_per_page' => 3) );?>

  <?php if ( $wp_query->have_posts() ) : ?>
  <ul>
    <?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
    <li>
      <a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
    </li>
    <?php endwhile;?>
  </ul>
  <?php endif; ?>

</div>
3
JCoder

Dies kann durch ein Theme oder Plugin verursacht werden, das die WordPress-Einstellungen überschreibt. Sie können versuchen, das TwentyEleven- oder TwentyTen-Thema zu aktivieren sowie Plugins zu deaktivieren, um zu prüfen, ob es dann funktioniert.

In diesem Fall können Sie uns mitteilen, welches Thema Sie verwenden (sofern es vorkonfiguriert ist) oder welche Plugins Sie deaktivieren mussten, damit es funktioniert - und wir können sehen, was getan werden kann, um Abhilfe zu schaffen.

1
OleVik

Ich wollte meinen Fall zu dieser Liste hinzufügen, da das Debuggen eine Ewigkeit gedauert hat. Was passiert, ist, dass ich die Anzahl der auf einer Archivseite angezeigten Beiträge geändert habe, indem ich mich in den Hook pre_get_post einhänge:

add_filter('pre_get_posts', 'number_of_posts_on_archive');
function number_of_posts_on_archive($query)
{
    if(is_post_type_archive(array('post_type1', 'post_type2')))
    {
        $query->set('posts_per_page', 20);
    }
    return $query;
}

Und um das Problem zu beheben, dass die Post-Abfrage für einen völlig anderen Post-Typ enthalten würde, habe ich der if-Anweisung Folgendes hinzugefügt:

if( (is_post_type_archive(array('post_type1', 'post_type2'))) && ($query->get('post_type') !== 'post') )
{
    ....
}

Der Grund, warum ich es hier poste, ist, dass dies das erste Ergebnis ist, das bei der Google-Suche im Zusammenhang mit der Suche, die ich dafür durchgeführt habe, aufgetaucht ist. Es könnte also jemandem helfen, der eine oder zwei Stunden nicht herausfinden kann, warum die Abfrage einfach nicht auf Sie hören möchte.

1
N.Schipper
 //just before calling your code add this and customize it as you like
 function hwl_home_pagesize( $query ) {
if ( is_admin() || ! $query->is_main_query() )
    return;

if ( is_home() ) {
    // Display only 1 post for the original blog archive
    $query->set( 'posts_per_page', 1 );
    return;
}

if ( is_post_type_archive( 'movie' ) ) {
    // Display 50 posts for a custom post type called 'movie'
    $query->set( 'posts_per_page', 50 );
    return;
  }
}
add_action( 'pre_get_posts', 'hwl_home_pagesize', 1 );
1
ashraf mohammed

N.Schipper richtig gesagt. Aber das einzige, was in der Bedingung ist, ist nicht genug Bedingung

! is_admin ()

Die Anzahl der Beiträge pro Seite wird also nur in den erforderlichen Zyklen geändert und hat keinen Einfluss auf den Administrationsbereich.

if( (! is_admin()) && (is_post_type_archive(array('post_type1', 'post_type2'))) && ($query->get('post_type') !== 'post') )
{
  {
    $query->set( 'posts_per_page', 6 );
    return;
}
}
0
stefarer