发布限制和发布前的发布有什么不同?

时间:2015-06-11 作者:Brad Dalton

因为缺少关于post_limits, 很难了解更多关于此函数以及何时使用它的信息。以前从未使用过或见过它被使用过,所以它可能不会被使用?

function wpcodex_filter_home_post_limits( $limit, $query ) {

    if ( ! is_admin() && $query->is_main_query() && $query->is_home() ) {
        return \'LIMIT 0, 25\';
    }

    return $limit;
}
add_filter( \'post_limits\', \'wpcodex_filter_home_post_limits\', 10, 2 );
根据我的测试,post\\u limits与使用pre\\u get\\u posts的作用相同

如果我想有条件地返回5篇文章而不分页其余的文章,我会使用post\\u limits还是pre\\u get\\u posts?

2 个回复
SO网友:birgire

请注意,这里您覆盖了主查询的分页,使用posts_limits 使用硬编码值筛选:

\'LIMIT 0, 25\'
在哪里0 是偏移量和25 要显示的帖子数。

所以在这种情况下,我会使用pre_get_posts 具有

$query->set( \'posts_per_page\', 25 );
我们不必担心寻呼问题。

如果我想有条件地返回5篇文章而不分页其余的文章,我会使用post\\u limits还是pre\\u get\\u posts?

如果我们后来决定分页是必要的,那么我们将需要修改您的posts_limits 密码这个pre_get_posts 过滤器将按原样工作,因此我们可以说它至少是一种更“经得起未来考验”的方法。

另一件事:如果你使用get_posts()WP_Query() 使用抑制的过滤器,然后posts_limitspre_get_posts 挂钩可以接近。

SO网友:s_ha_dum

pre_get_posts 允许您在请求的早期更改查询参数。您可以修改任何有效的WP_Query 参数,包括LIMIT 通过posts_per_page 论点这可以产生比posts_limits 它只允许您更改数据库查询SQL的一部分。

在您的情况下,使用pre_get_posts 因为核心代码将为您管理分页(至少如果这是主查询()。如果您使用post_limits 您需要跟踪和管理分页——“0,25”部分,在分页时递增值。

结束

相关推荐

$wpdb->Prepare的工作方式与MYSQL_REAL_EASH_STRING不同

我正在开发WordPress插件,最近我计划从SQL迁移到$wpdb. 我正在使用一个名为$wpdb->prepare 而不是mysql_real_escape_string 但它不起作用。以下是我尝试的内容:代码:echo $fetch_row; 输出:a: 5:{s:9:“task\\u name”;s:10:“立即备份”;s:9:“机制”;s:10:“singleCall”代码:echo mysql_real_escape_string( $fetch_row ) 输出:\