posts_per_page nu funcționează
Iată interogarea mea personalizată:
<?php
$Poz = new WP_Query(array(
'posts_per_page' => 3,
'orderby' => 'date',
'order' => 'DESC',
'no_found_rows' => true,
'update_post_term_cache' => false,
'update_post_meta_cache' => false,
));
// Interogarea
$the_query = new WP_Query( $Poz );
// Bucla
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<li><a href="<?php the_permalink(); ?>" title="Citește articolul <?php the_title(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; wp_reset_postdata(); ?>
Am început să încerc să minimizez interogările mele. Am găsit câteva articole despre acest lucru. Această metodă înseamnă făcând doar două interogări.
Puteți verifica și aici.
Întrebarea este despre argumentul posts_per_page. De ce nu funcționează? Cred că este din cauza
'no_found_rows' => true,
acestui argument. Asta înseamnă că nu există paginare pentru interogare. Dar cum putem limita numărul de postări? sau ce putem folosi în loc de posts_per_page în această interogare. Să discutăm despre asta.
-- Actualizat --
Am schimbat metoda de interogare cu query_posts în loc de new WP_Query:
<?php
# Interogări WordPress în cache
# SE Disq : http://wordpress.stackexchange.com/questions/70424/posts-per-page-doesnt-work/70425
$Poz = array(
'posts_per_page' => 5,
'orderby' => 'date',
'order' => 'DESC',
'no_found_rows' => true,
'update_post_term_cache' => false,
'update_post_meta_cache' => false,
);
query_posts( $Poz ); while ( have_posts() ) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>" title="Citește articolul <?php the_title(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; wp_reset_query(); ?>

Da, folosește 'nopaging' => true
http://codex.wordpress.org/Class_Reference/WP_Query#Pagination_Parameters
$Poz = array(
'posts_per_page' => 3,
'orderby' => 'date',
'order' => 'DESC',
'update_post_term_cache' => false,
'update_post_meta_cache' => false,
'nopaging' => true,
);
$the_query = new WP_Query( $Poz );

'nopaging' => true
este același lucru? Asta face mai multe interogări sau nu? De asemenea, am adăugat acea linie, dar rezultatele afișează numărul de postări ca și interogarea principală.

nopaging
îi spune WordPress: uite, știi că faci paginare implicit, dar oprește-te și dă-mi doar cele X postări. Deci, mai puține interogări, presupun.

Sunt confuz, dar nici asta nu funcționează. :/
`<?php $Poz = new WP_Query(array( 'posts_per_page' => 5, 'orderby' => 'date', 'order' => 'DESC', 'no_found_rows' => true, 'update_post_term_cache' => false, 'update_post_meta_cache' => false, 'nopaging' => true, )); $the_query = new WP_Query( $Poz );
// The Loop
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?> yazısını oku."><?php the_title(); ?></a></li>
<?php endwhile; wp_reset_postdata(); ?>`

Stai puțin. ăsta nu este motivul. Am ratat complet. ar trebui să fie: $Poz = array(
'posts_per_page' => 3,
'orderby' => 'date',
'order' => 'DESC',
'no_found_rows' => true,
'update_post_term_cache' => false,
'update_post_meta_cache' => false, 'nopaging' => true,
);
$the_query = new WP_Query( $Poz );
Parametrul $Poz
ar trebui să fie argumentele pentru noua interogare WP_Query

Încearcă te rog, nu funcționează. Toate articolele apar (: Interogarea nu ia în considerare numerele.

Nu este vorba despre 'no_found_rows' => true,
ci despre transmiterea argumentelor către new WP_Query

Ar trebui să schimbăm metoda de interogare? De exemplu, să folosim get_posts(); sau ceva similar în loc de new Query
?

Depinde de tine. Eu aș folosi WP_Query. Ideea este că $Poz
ar trebui să fie argumente pentru interogare, nu o nouă interogare.

Cred că acum am înțeles. Iată noul cod: https://gist.github.com/3951155 Dar ar trebui să știi că atunci când adaugi parametrul no-pagging, nu funcționează din nou.

hai să continuăm această discuție în chat

Nu funcționează pentru mine. Folosesc WP Query în interiorul unui shortcode [posts] creat de mine. Atributele "posts_per_page" și "nopaging" sunt transmise ca atribute ale shortcode-ului (totul funcționează aici), dar îmi returnează TOATE postările.
