【问题标题】:Disable SQL_CALC_FOUND_ROWS with Pagination使用分页禁用 SQL_CALC_FOUND_ROWS
【发布时间】:2017-02-23 05:24:39
【问题描述】:

我想通过分页禁用禁用 SQL_CALC_FOUND_ROWS。为此,我使用来自SQL_CALC_FOUND_ROWS 的以下代码,但由于该代码分页不起作用。我如何做到这一点或如何改进下面的代码?

if ( ! function_exists( 'oz_optimized_get_posts' ) ):
function oz_optimized_get_posts() {
    global $wp_query, $wpdb;

    $wp_query->query_vars['no_found_rows'] = 1;
    $wp_query->found_posts = $wpdb->get_var( "SELECT COUNT(*) FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')" );
    $wp_query->found_posts = apply_filters_ref_array( 'found_posts', array( $wp_query->found_posts, &$wp_query ) );

    $posts_per_page = ( ! empty( $wp_query->query_vars['posts_per_page'] ) ? $wp_query->query_vars['posts_per_page'] : get_option( 'posts_per_page' ) );
    $wp_query->max_num_pages = ceil( $wp_query->found_posts / $posts_per_page );

    return $wp_query;
}
add_filter( 'pre_get_posts', 'oz_optimized_get_posts', 100 );
endif;

【问题讨论】:

    标签: php wordpress pagination


    【解决方案1】:

    "WordPress: SQL_CALC_FOUND_ROWS, why it’s slow and what to do about it" 帖子的作者 Edwar D 应我的要求更新了他的代码,并且更新后的代码可以 110% 工作。

    致谢

    【讨论】:

      猜你喜欢
      • 2011-02-17
      • 1970-01-01
      • 2011-06-13
      • 1970-01-01
      • 2012-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多