Bỏ qua đến nội dung chính

Làm thế nào để sử dụng WordPress bộ nhớ cache không liên tục

Divi: chủ đề WordPress dễ sử dụng nhất

Divi: Chủ đề WordPress tốt nhất mọi thời đại!

hơn Tải xuống 901.000, Divi là chủ đề WordPress phổ biến nhất trên thế giới. Nó là hoàn chỉnh, dễ sử dụng và đi kèm với hơn 62 mẫu miễn phí. [Khuyến nghị]

Có nhiều cách khác nhau để làm cho trang web của bạn hiệu quả hơn: các plugin chuyên dụng cho phép bạn lưu trữ các trang cho nội dung HTML tĩnh, các cách khác cho phép bạn lưu trữ tất cả các truy vấn SQL và các đối tượng dữ liệu và cuối cùng là một số cho phép bạn giảm thiểu các tệp JavaScript và CSS và thậm chí các giải pháp phía máy chủ.

mise-en-hide-on-wordpress

Nhưng ngay cả khi bạn đang sử dụng các plugin này, việc sử dụng các phương pháp bộ nhớ đệm nội bộ cho các đối tượng cơ sở dữ liệu và kết quả sẽ là phương pháp phát triển tốt, trong đó plugin của bạn không phụ thuộc vào giải pháp bộ nhớ đệm đó loại bỏ người dùng cuối. Plugin của bạn phải tự chạy nhanh và không nên dựa vào các plugin khác để thực hiện công việc bẩn thỉu. Và nếu bạn nghĩ rằng bạn nên viết mã của riêng mình để quản lý bộ nhớ cache thì bạn đã nhầm. WordPress đi kèm với mọi thứ bạn cần để nhanh chóng triển khai các bộ nhớ đệm dữ liệu khác nhau. Bạn chỉ cần xác định các phần mã sẽ được hưởng lợi từ việc tối ưu hóa và chọn loại bộ nhớ đệm cho phù hợp.

WordPress thực hiện hai phương pháp lưu trữ khác nhau:

Không liên tục

Dữ liệu vẫn còn trong bộ đệm trong khi tải trang. (WordPress sử dụng nó để lưu trữ hầu hết các kết quả truy vấn từ cơ sở dữ liệu.)

Khăng khăng

Dễ dàng tạo trang web của bạn với Elementor

Elementor cho phép bạn dễ dàng tạo ra bất kỳ thiết kế trang web nào với một cái nhìn chuyên nghiệp. Ngừng trả tiền đắt cho những gì bạn có thể tự làm. [Miễn phí]

Điều này phụ thuộc vào cách cơ sở dữ liệu hoạt động và dữ liệu được lưu trong bộ nhớ cache có thể tự hết hạn sau một khoảng thời gian nhất định. (WordPress sử dụng nó để lưu trữ nguồn cấp dữ liệu RSS, cập nhật, v.v.).

Trong hướng dẫn này, chúng tôi sẽ chỉ xem xét bộ đệm không liên tục.

Cách thiết lập bộ nhớ đệm không liên tục "Không liên tục"

Khi bạn sử dụng các chức năng như " get_posts () "Hoặc" get_post_meta () Trước tiên, WordPress sẽ kiểm tra xem dữ liệu bạn cần có được lưu vào bộ nhớ đệm hay không. Nếu vậy, bạn sẽ lấy dữ liệu từ bộ nhớ cache; nếu không, một truy vấn cơ sở dữ liệu sẽ được thực hiện để lấy dữ liệu này. Sau khi dữ liệu được khôi phục, nó cũng sẽ được lưu vào bộ nhớ đệm. Bộ đệm ẩn không liên tục được khuyến nghị cho các kết quả cơ sở dữ liệu có thể được sử dụng lại khi tạo trang.

Mã bộ nhớ cache không liên tục nội bộ của WordPress nằm trong tệp " cache.php "Trong thư mục" wp-include "và nó được quản lý bởi" WP_Object_Cache ". Chúng ta cần sử dụng hai hàm cơ bản: " wp_cache_set () "Và" wp_cache_get () Đồng thời với các chức năng bổ sung " wp_cache_add () "," wp_cache_replace () "," wp_cache_flush () "Và" wp_cache_delete () ". Bộ nhớ được lưu trữ được lưu trữ theo nhóm, mỗi mục cần có khóa duy nhất của nó. Để tránh trộn dữ liệu mặc định của WordPress, sử dụng tên duy nhất là cách tốt nhất.

Exemple

Đối với ví dụ này, chúng ta sẽ tạo một hàm có tên "d4p_get_all_post_meta ()", hàm này truy xuất tất cả dữ liệu meta được liên kết với một bài báo. Phiên bản đầu tiên này không bao gồm bộ nhớ đệm.

function d4p_get_all_post_meta($post_id) {
    global $wpdb;

    $data = array();
    $raw = $wpdb->get_results( "SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id = $post_id", ARRAY_A );

    foreach ( $raw as $row ) {
        $data[$row['meta_key']][] = $row['meta_value'];
    }

    return $data;
}

Mỗi lần bạn gọi hàm này cho cùng một bài viết, một truy vấn SQL sẽ được thực thi. Đây là chức năng được sửa đổi sử dụng bộ đệm WordPress không liên tục:

function d4p_get_all_post_meta($post_id) {
    global $wpdb;

    if ( ! $data = wp_cache_get( $post_id, 'd4p_post_meta' ) ) {
        $data = array();
        $raw = $wpdb->get_results( "SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id = $post_id", ARRAY_A );

        foreach ( $raw as $row ) {
            $data[$row['meta_key']][] = $row['meta_value'];
        }

        wp_cache_add( $post_id, $data, 'd4p_post_meta' );
    }

    return $data;
}

Ở đây chúng tôi sử dụng một nhóm bộ đệm có tên " d4p_post_meta ", Và" post_id "là chìa khóa. Với chức năng này, chúng tôi sẽ kiểm tra xem chúng tôi có cần tất cả dữ liệu trong bộ nhớ hay không. Nếu không, chúng ta sẽ chạy mã bình thường để lấy một số dữ liệu và sau đó thêm nó vào bộ đệm ẩn ở hàng 13. Vì vậy, nếu bạn gọi hàm này nhiều lần, chỉ hàm đầu tiên sẽ thực hiện truy vấn SQL. Tất cả các cuộc gọi khác sẽ lấy dữ liệu từ bộ nhớ cache. Ở đây chúng tôi sử dụng hàm " wp_cache_add ", Vì vậy nếu tổ hợp" key-group "đã tồn tại, nó sẽ không bị thay thế. So sánh với " wp_cache_set Mà sẽ luôn luôn thay thế một giá trị hiện có mà không cần kiểm tra.

Như bạn có thể thấy, chúng tôi chỉ thực hiện một thay đổi nhỏ đối với mã hiện có nhưng có khả năng lưu rất nhiều lệnh gọi cơ sở dữ liệu có khả năng làm cho việc tải nhanh hơn.

Ghi chú quan trọng

Bộ nhớ cache không liên tục chỉ có sẵn trong khi trang hiện tại đang tải; khi trang tiếp theo tải, nó sẽ bị rỗng một lần nữa.

Kích thước lưu trữ bị giới hạn bởi tổng bộ nhớ có sẵn trên PHP do máy chủ cấp phát. Không lưu trữ một bộ dữ liệu lớn, nếu không bạn có thể nhận được thông báo "Hết bộ nhớ".

Việc sử dụng loại bộ nhớ đệm này chỉ có ý nghĩa đối với các hoạt động được lặp lại nhiều lần trong quá trình tạo trang.

Nó hoạt động với WordPress từ phiên bản 2.0.

Đó là nó cho hướng dẫn này. Tôi hy vọng nó sẽ cho phép bạn lưu trữ tốt hơn blog của bạn.

Bài viết này chứa comments 0

Để lại một bình luận

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *

Trang web này sử dụng Akismet để giảm bớt không mong muốn. Tìm hiểu thêm về cách sử dụng dữ liệu nhận xét của bạn.

Trở lại đầu trang
5 cổ phiếu
cổ phiếu2
tweet
Enregistrer3