new WP_Query issues

时间:2013-03-11 作者:Locke

我的默认wordpress集每页可容纳10篇文章。

在类别中。php,我想用每页999篇文章来覆盖它,问题是这根本不起作用。

当我使用以下代码时。它不按字母顺序调整或显示999条帖子

    <?php get_header(); ?>

<section id="index" class="index">
  <div class="wrap">

    <div class="filter">

      <dl id="filters" class="dropdown drop-model">
        <dt><a href="#"><span>Selecciona el modelo de tu auto</span><small>&#9662;
        </small></a></dt>
        <dd>
          <ul>
            <li><a href="" data-filter="*">Todos</a></li>
            <li><ul class="thead-inside"><li>Modelo</li><li>Version</li><li>Año</li></ul></li>
            <?php
            global $query_string;

            $args = array(
              \'post_per_archive_page\' => \'999\' ,
              \'orderby\' => \'name\',
              \'order\' => \'ASC\'
              );

              $the_query = new WP_Query($query_string,$args); ?>

              <?php
              if ( $the_query->have_posts() ) :
                while ( $the_query->have_posts() ) : $the_query->the_post();
              ?>
              <li><a href="#" data-filter=".<?php theSlug(); ?>-<?php getYearTire(); ?>">
                <ul class="tr-inside">
                  <li><?php the_title(); ?></li>
                  <li><?php the_version(); ?></li>
                  <li><?php getYearTire(); ?></li></ul>
                </a>
              </li>
            <?php endwhile; endif; ?>
            <?php wp_reset_postdata(); ?>

          </ul>
        </dd>
      </dl>
  </div>

  <article class="clearfix">
   <ul class="getTire thead">
    <li>Auto</li>
    <li>Modelo</li>
    <li>Version</li>
    <li>A&ntilde;o</li>
    <li>Medida</li>
    <!-- <li>Tipo</li> -->
    <li></li>
  </ul>
</article>

<div class="events" id="events">
  <?php
  global $query_string;

  $args = array(
    \'post_per_archive_page\' => \'999\' ,
    \'orderby\' => \'name\',
    \'order\' => \'ASC\'
    );

    $the_query = new WP_Query($query_string,$args); ?>
    <?php
    if ( $the_query->have_posts() ) :
      while ( $the_query->have_posts() ) : $the_query->the_post();
    ?>

    <article class="<?php theSlug(); ?>-<?php getYearTire(); ?> <?php the_version(); ?> <?php the_options(); ?> clearfix">
      <figure><?php the_post_thumbnail(); ?></figure>
      <ul class="getTire">
        <li><?php the_category(\', \'); ?></li>
        <li><?php the_title(); ?></li>
        <li><?php the_version(); ?></li>
        <li><?php getYearTire(); ?></li>
        <li><?php whohaveit(); ?></li>
        <!--  <li><?php// the_type(); ?></li> -->
        <li><input class="btn" value="Busca" onclick="window.location=\'/tienda/product-tag/<?php simple_tag(); ?>\'"></li>
      </ul>
    </article>


  <?php endwhile; endif; ?>
</div>


<?php wp_reset_postdata(); ?>




</div>
</section>
<div class="hidden" id="slider"></div>
<?php get_footer(); ?>
谢谢

1 个回复
最合适的回答,由SO网友:Milo 整理而成

你的问题是new WP_Query($query_string,$args); 但是,创建新的WP_Query 不是做你想做的事的方式。有关详细信息,请参阅codex页pre_get_posts 有关修改主查询的正确方式。

我假设通过将每页帖子数设置为999,您希望显示所有帖子,所以只需使用-1 而是从查询中删除限制。这将符合你的主题functions.php 文件:

function wpa90381_category_query( $query ) {
    if ( $query->is_category() && $query->is_main_query() ) {
        $query->set( \'posts_per_page\', -1 );
        $query->set( \'orderby\', \'name\' );
    }
}
add_action( \'pre_get_posts\', \'wpa90381_category_query\' );

结束