問題描述

我們有許多 WP 站點在他們所在的服務器和互聯網之間有一個代理。

WP 中的一些事情根本不起作用:

  • 儀錶板上的 RSS 提要

  • 查找主題

  • 查找插件

  • 核心更新

我們手動完成所有操作,除了頁面加載的 SLOWNESS 之外,確實沒有問題。似乎管理員幾乎所有的事情都需要 4-5 秒的時間來處理,除了添加媒體,這是驚人的快。

我可以檢查或做些什麼來加快 back-end? (front-end 蒼蠅)

最佳解決方案

頁腳中的 jQuery /JavaScript

你可以做的一件事是將 jQuery 移到頁腳博客文章。標題中不需要默認值。你會檢查一切是否仍然工作艱難,因為我通常只是為主題做:

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

Queries

加快帖子列表表格屏幕的另一件事是減少查詢字段的數量。我注意到這個問題一段時間以來,由於我的 999 個帖子設置,這些屏幕加載太慢了。全 blog post here – 插件 as 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",
    ) );
}

如果您不需要所有的列,您可以擴展以上的插件,同時刪除一些列的內容。

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

Dashboard

每個用户都進入儀錶板 – 這可能是管理界面中最慢的部分。您可以停用一些您不需要的小工具,而不是隱藏它們:

<?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' );
} );

傳出數據

我可以建議使用 Snitch by Sergej Müller 來監控哪些數據試圖離開您的安裝。該插件允許抑制所有或僅僅特定的連接以及針對特定於針尖的內部連接,其目標是像不需要的 cron 作業和類似的東西。如果您不想要完整的包,您可以查看其來源的示例。 Sergej 通常使用大量的白色空間來編寫非常易讀的代碼。

次佳解決方案

我建議安裝此 https://github.com/johnbillion/query-monitor 並查看以下內容:內存使用情況,HTTP 請求,AJAX 和慢速查詢。

這可能是您的修改,插件的 AJAX,錯誤的查詢等。

您將能夠看到是否需要為您的服務器添加更多的 RAM,這通常會解決很多慢速加載的管理問題,特別是如果您在管理員中有多個編輯器。

但除了這裏的一些技巧之外,還沒有一個解決方案,您需要查看主題如何與管理員進行交互。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。