如何限制MySite上所有QUERY_POST的结果数

时间:2013-11-28 作者:user1921704

我有大量的帖子,没有限制的分页会占用我的服务器CPU和ram,因此我需要一个函数来限制所有帖子的数量query_posts 在我的网站上,如果可能的话,我也需要这个功能在管理区工作,有什么建议吗??

function limit_posts {
$args = array(
    \'posts_per_page\' => 10,
    \'post_type\' => \'job_listing\',
);

global $wp_query;
$wp_query = new WP_Query( $args );

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

对结果实施严格限制并不难:

add_action(
  \'post_limits\',
  function($limit) {
    $limits = explode(\',\',$limit);
    if (isset($limits[1]) && 2000 < $limits[\'1\']) {
      $limits[1] = 2000;
    }
    $limit = implode(\',\',$limits);
    return $limit;
  }
);
如果这不能解决你的问题,我也不会感到惊讶。对于你的服务器来说,仅仅搜索那么多帖子可能太多了,无论返回的结果有多大限制。

我也不能百分之百肯定这不会破坏一切。小心点。

你可以使用\'no_found_rows\'=>true 对于任何不需要分页的查询。这可能会有所帮助。

最终,我怀疑您对服务器做的太多了,并且/或者您需要一个非常、非常擅长服务器配置的人来帮助您调整设置和负载平衡。

SO网友:Anudeep Sharma

http://digwp.com/2009/12/limit-posts-without-plugin/ 我想这可能对你有用

<h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
<p>?php the_time(); ?></p>
<?php the_content(); ?>
<p><?php the_tags(); ?></p>
<p><?php next_posts_link(); ?></p>
<p><?php previous_posts_link(); ?></p>
<h1>Not Found</h1>
<p>Silly monkey.</p>
或第二种方法
<h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
<p>?php the_time(); ?></p>
<?php the_content(); ?>
<p><?php the_tags(); ?></p>
<p><?php next_posts_link(); ?></p>
<p><?php previous_posts_link(); ?></p>
<h1>Not Found</h1>
<p>Silly monkey.</p>

结束

相关推荐

第一个分页页面和其余分页页面的Posts_Per_Page设置是否不同?

如何设置posts_per_page 查询设置,以便在第一个分页页面(主页、存档、搜索等)和其余页面上显示不同数量的帖子?例如,假设我想在类别档案的第一个分页页面上显示10篇文章,在其余页面上显示15篇文章。我该怎么做?This works:function itsme_category_offset( $query ) { if( $query->is_category() && $query->is_main_query() ) { i