問題描述
我們有許多 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。