WordPress文章太多了特别卡

作者 : admin 本文共1458个字,预计阅读时间需要4分钟 共47人阅读

完全禁用 SQL_CALC_FOUND_ROWS,放到 functions.php 文件中即可

add_action(‘pre_get_posts’, ‘wndt_post_filter’);
function wndt_post_filter($query) {
if (is_admin() or !$query->is_main_query()) {
return $query;
}

// 禁止查询 SQL_CALC_FOUND_ROWS
$query->set(‘no_found_rows’, true);

  1. }
  2. 如果还需要查询文章数,请使用效率更高的 EXPLAIN 方法,而不是 SQL_CALC_FOUND_ROWS。以更有效的方式禁用 SQL_CALC_FOUND_ROWS 的使用,这里我们使用 EXPLAIN 方法,具体代码如下,放在 functions.php 文件中即可

    if ( ! function_exists( ‘zjck_set_no_found_rows’ ) ) {
    /**
    * 设置 WP_Query 的 ‘no_found_rows’ 属性为 true,禁用 SQL_CALC_FOUND_ROWS
    *
    @param WP_Query $wp_query WP_Query 实例
    @return void
    */
    function zjck_set_no_found_rows(\WP_Query $wp_query)
    {
    $wp_query->set(‘no_found_rows’, true);
    }
    }
    add_filter( ‘pre_get_posts’, ‘zjck_set_no_found_rows’, 10, 1 );

    if ( ! function_exists( ‘zjck_set_found_posts’ ) ) {
    /**
    * 使用 EXPLAIN 方式重构
    */
    function zjck_set_found_posts($clauses, \WP_Query $wp_query)
    {
    // Don’t proceed if it’s a singular page.
    if ($wp_query->is_singular()) {
    return $clauses;
    }

    global $wpdb;

    $where = isset($clauses[‘where’]) ? $clauses[‘where’] : ”;
    $join = isset($clauses[‘join’]) ? $clauses[‘join’] : ”;
    $distinct = isset($clauses[‘distinct’]) ? $clauses[‘distinct’] : ”;

    $wp_query->found_posts = (int)$wpdb->get_row(“EXPLAIN SELECT $distinct * FROM {$wpdb->posts} $join WHERE 1=1 $where”)->rows;

    $posts_per_page = (!empty($wp_query->query_vars[‘posts_per_page’]) ? absint($wp_query->query_vars[‘posts_per_page’]) : absint(get_option(‘posts_per_page’)));

    $wp_query->max_num_pages = ceil($wp_query->found_posts / $posts_per_page);

    return $clauses;
    }

    }
    add_filter( ‘posts_clauses’, ‘zjck_set_found_posts’, 10, 2 );

资源下载此资源仅限VIP下载,请先
客服QQ:1140845961
本资源网每日更新精品源码,宁缺毋滥,只做能用的精品源码。源码大部分为购买淘宝互站上的源码,少部分来自其他论坛的代理源码。均为精品!!目前源码数量还少,VIP价格较低,早上车早赚到!!!源码搭建教程详情请查看:https://yigexueshe.com
黑马源码资源网 » WordPress文章太多了特别卡

开通会员

QQ联系 购买卡密

copy fly

咨询请飞机或邮箱

欢迎来到黑马源码网,搭建教程请移步:https://yigexueshe.com 若长时间未回复可联系QQ:2212190958/1140845961。本站无在线支付,开通会员请联系飞机/邮箱/QQ,告知管理员账号并开通,感谢支持!