Làm cách nào để tăng tốc phần quản trị WP của tôi?


12

Chúng tôi có nhiều trang WP có proxy ở giữa các máy chủ mà họ ngồi và internet.

Một số thứ trong WP đơn giản là không hoạt động:

  • Nguồn cấp dữ liệu RSS trên bảng điều khiển
  • tìm kiếm chủ đề
  • tìm kiếm các plugin
  • cập nhật cốt lõi

Chúng tôi làm mọi thứ thủ công và thực sự không có vấn đề gì ngoại trừ SLOWNESS khi tải trang. Có vẻ như hầu hết mọi thứ trong quản trị viên đều mất 4-5 giây để xử lý ngoại trừ việc thêm phương tiện - nhanh đến mức đáng ngạc nhiên.

Một số điều ban đầu tôi có thể kiểm tra hoặc làm để tăng tốc độ back-end là gì? (con ruồi phía trước)


3
Bạn có thể chặn các yêu cầu bên ngoài bằng cách xác định define( 'WP_HTTP_BLOCK_EXTERNAL', true );trong wp-config.php. Ngoài ra quản trị viên WordPress Open Sansvà các phông chữ khác từ Google. Bạn cũng có thể vô hiệu hóa điều đó. Nó làm cho phần quản trị tải nhanh hơn một chút.
Robert hue

@Roberthue - có vẻ như rất nhiều trang trong quản trị viên đang thực hiện các cuộc gọi ra web. Chúng tôi muốn tắt tất cả chúng. Thêm chặn yêu cầu bên ngoài bây giờ để xem nó phản ứng như thế nào.
STing

1
@Roberthue - Không chắc tại sao tôi chưa bao giờ sử dụng cái này trước đây - bạn có biết khi nào WP_HTTP_BLOCK_EXTERNAL được triển khai lần đầu tiên. Tôi đã thêm nó vào plugin của mình (có một plugin tôi hỗ trợ ở mọi nơi) và có cách nhanh hơn để tải tất cả các trang. Vui lòng thêm điều này như một câu trả lời và bất kỳ lời khuyên nào khác cho lưới điện.
STing

Nó đã ở đó trong vài năm. Không chắc chắn chính xác khi nó được thêm vào. Tôi cũng đang tìm cách để tăng tốc các trang quản trị khi tôi tìm thấy bài viết này
Robert hue

1
Như một câu trả lời xin vui lòng. Ngoài ra, nó đã tồn tại trong một thời gian rất dài, có thể (gần như) miễn là chính HTTP API.
Hết

Câu trả lời:


12

jQuery / JavaScript ở chân trang

Một điều bạn có thể làm là chuyển jQuery sang bài viết chân trang . Đó là mặc định không cần thiết trong tiêu đề. Bạn sẽ kiểm tra xem mọi thứ có còn hoạt động không, vì tôi thường chỉ làm điều đó cho các chủ đề:

<?php
/* Plugin Name: Move jQuery to the footer */
function( 'admin_enqueue_scripts', function( $hook )
{
    $GLOBALS['wp_scripts']->add_data( 'jquery', 'group', 1 );
} );

Truy vấn

Một điều nữa làm tăng tốc độ màn hình bảng danh sách bài viết là giảm số lượng các trường được yêu cầu. Tôi đã nhận thấy vấn đề đó một thời gian trước khi những màn hình đó được tải quá chậm do cài đặt 999 bài đăng của tôi. Blog đầy đủ bài viết ở đây - Plugin như GitHub Gist .

<?php
/**
 * Plugin Name: (WCM) Faster Admin Post Lists
 * AuthorURL:   http://unserkaiser.com
 * License:     MIT
 */

add_filter( 'posts_fields', 'wcm_limit_post_fields_cb', 0, 2 );
function wcm_limit_post_fields_cb( $fields, $query )
{
  if (
        ! is_admin()
        OR ! $query->is_main_query()
        OR ( defined( 'DOING_AJAX' ) AND DOING_AJAX )
        OR ( defined( 'DOING_CRON' ) AND DOING_CRON )
    )
        return $fields;

    $p = $GLOBALS['wpdb']->posts;
    return implode( ",", array(
        "{$p}.ID",
        "{$p}.post_date",
        "{$p}.post_name",
        "{$p}.post_title",
        "{$p}.ping_status",
        "{$p}.post_author",
        "{$p}.post_password",
        "{$p}.comment_status",
    ) );
}

Nếu bạn không cần tất cả các cột, bạn cũng có thể mở rộng plugin bên trên bằng cách xóa nội dung của một số cột.

add_filter( 'manage_edit-post_columns', function( $columns )
{
    # @TODO Remove columns which you don't need
    return $defaults;
} );

bảng điều khiển

Mọi người dùng nhập vào bảng điều khiển - có lẽ là phần chậm nhất trong giao diện người dùng quản trị. Bạn có thể hủy kích hoạt một số vật dụng mà bạn không cần, thay vì chỉ ẩn chúng:

<?php
/** Plugin Name: Remove Dashboard Widgets */
add_action( 'wp_dashboard_setup', function()
{
    remove_meta_box( 'dashboard_plugins', 'dashboard', 'normal' );
    remove_meta_box( 'dashboard_primary', 'dashboard', 'normal' );
    remove_meta_box( 'dashboard_primary', 'dashboard', 'side' );
    remove_meta_box( 'dashboard_activity', 'dashboard', 'normal' );
    remove_meta_box( 'dashboard_right_now', 'dashboard', 'normal' );
    remove_meta_box( 'dashboard_secondary', 'dashboard', 'normal' );
    remove_meta_box( 'dashboard_quick_press', 'dashboard', 'side' );
    remove_meta_box( 'dashboard_browser_nag', 'dashboard', 'normal' );
    remove_meta_box( 'dashboard_recent_drafts', 'dashboard', 'side' );
    remove_meta_box( 'dashboard_incoming_links', 'dashboard', 'normal' );
    remove_meta_box( 'dashboard_incoming_links', 'dashboard', 'normal' );
    remove_meta_box( 'dashboard_recent_comments', 'dashboard', 'normal' );
} );

Dữ liệu đi

Tôi chỉ có thể khuyên bạn nên sử dụng Snitch của Sergej Müller để theo dõi dữ liệu nào cố gắng rời khỏi cài đặt của bạn. Plugin cho phép triệt tiêu tất cả hoặc chỉ các kết nối cụ thể cũng như xác định các kết nối nội bộ cụ thể nhắm mục tiêu các tác vụ như công việc định kỳ không mong muốn và những thứ tương tự. Bạn có thể xem nguồn của nó để biết ví dụ nếu bạn không muốn gói đầy đủ. Sergej thường viết mã rất dễ đọc với cách sử dụng khoảng trắng rộng rãi.


1
Bạn cũng có thể thu thập thông tin hữu ích thông qua các Đối tượng gỡ lỗi trình cắm để xem, các truy vấn, chức năng nào đã được kích hoạt và thời gian cô ấy chạy. Cũng từ chức năng, plugin đến truy vấn.
bueltge

4

Tôi khuyên bạn nên cài đặt https://github.com/johnbillion/query-monitor này và xem xét các điều sau: Sử dụng bộ nhớ, yêu cầu HTTP, AJAX và truy vấn chậm.

Nó có thể là bản sửa đổi của bạn, AJAX của plugin, truy vấn xấu, v.v.

Bạn sẽ có thể xem liệu bạn có cần thêm RAM vào máy chủ hay không, điều này thường giải quyết rất nhiều vấn đề quản trị tải chậm, đặc biệt nếu bạn có nhiều biên tập viên trong quản trị viên.

Nhưng bên cạnh một số thủ thuật ở đây và không có giải pháp tất cả trong một, bạn cần kiểm tra xem các chủ đề được bổ sung tương tác với quản trị viên như thế nào.


2

Cùng với một số câu trả lời được đề xuất tốt ở trên, bạn có thể hạn chế hoặc vô hiệu hóa "nhịp tim" của wordpress, điều này có thể làm chậm đáng kể quản trị viên của bạn nếu bạn mở nhiều màn hình hoặc nhiều người dùng sử dụng cùng một lúc. Một số máy chủ như WP-Engine thực sự có một biến thể của thiết lập này tự động.

function optimize_heartbeat_settings( $settings ) {
    $settings['autostart'] = false;
    $settings['interval'] = 60;
    return $settings;
}
add_filter( 'heartbeat_settings', 'optimize_heartbeat_settings' );

function disable_heartbeat_unless_post_edit_screen() {
    global $pagenow;
    if ( $pagenow != 'post.php' && $pagenow != 'post-new.php' )
        wp_deregister_script('heartbeat');
}
add_action( 'init', 'disable_heartbeat_unless_post_edit_screen', 1 );

Một điều khác bạn có thể thử là mày mò với một số wp-config.phphằng số. Tắt các sửa đổi bài đăng sẽ không có câu hỏi trợ giúp, nhưng nếu bạn không muốn làm điều đó, ít nhất bạn có thể hạn chế các sửa đổi.

define('WP_POST_REVISIONS', 5);

Hai hằng số khác tôi thường thay đổi để giữ cho mọi thứ được tối ưu hóa là thùng rác và ô tô tự động.

define('AUTOSAVE_INTERVAL', 600);
define( 'EMPTY_TRASH_DAYS', 3 );

Không vấn đề gì. Thêm một vài lựa chọn nữa.
Bryan Willis
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.