每页帖子数设置不起作用?

时间:2012-01-16 作者:JCoder

好吧,这是我的问题。我在wordpress网站上有静态主页和单独的帖子页面。我已经在管理面板中定义了这两个。现在,我还将要显示的最大帖子数设置为5(在设置>阅读中),但所有帖子(10+以上)仍显示在博客页面上。

我还在静态主页上使用自定义查询显示最新的3篇帖子。i、 e类

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

<results loop code>
但这个列表也显示了3篇以上的帖子。wordpress似乎忽略了我设置的每页帖子数限制,无论是在管理面板还是通过代码。到底怎么回事?这是我第一次使用wordpress开发网站。这是noobs的常见问题吗?

EDIT:

我只是剥离了静态主页,留下了一个基本的代码块,可以简单地获取帖子的标题。仍有3个以上的职位被退回。以下是主页中当前的实际(且唯一)代码:

<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>

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

这可能是因为主题或插件覆盖了WordPress设置。您可以尝试启用TwentyEleven或TwentyTen主题,以及禁用任何插件,看看它是否可以工作。

如果是这样的话,你可以发布你正在使用的主题(如果它是预构建的)或者你必须禁用哪些插件才能让它工作-我们可以看看可以做些什么来补救它。

SO网友:N.Schipper

我想将我的案例添加到此列表中,因为调试花费了我很多时间,结果是我更改了通过挂接到pre\\u get\\u post挂钩显示的存档页面的帖子数:

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;
}
为了解决包含完全不同帖子类型的帖子查询的问题,我在if语句中添加了类似的内容:

if( (is_post_type_archive(array(\'post_type1\', \'post_type2\'))) && ($query->get(\'post_type\') !== \'post\') )
{
    ....
}
我之所以把它贴在这里,是因为这是谷歌搜索中出现的第一个与我为它做的搜索相关的结果。所以它可能会帮助那些一个小时都不能理解的人。。。或者两个为什么这个查询根本不想听你的。

SO网友:ashraf mohammed
 //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 );
SO网友:stefarer

N、 Schipper说得对。但条件中唯一的东西是条件不够

! is_admin ()

因此,每页的帖子数量只会在必要的周期内更改,不会影响管理区域。

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

结束