我们有许多WP站点,在它们所在的服务器和Internet之间具有代理。
WP中的某些功能根本不起作用:
- 仪表板上的RSS提要
- 查找主题
- 查找插件
- 核心更新
我们手动进行所有操作,除了页面加载速度缓慢之外,实际上没有任何问题。看来,除了添加媒体外,几乎管理员中的所有内容都需要4-5秒来处理-这出奇的快。
为了加快后端速度,我可以检查或执行哪些初始操作?(前端飞行)
我们有许多WP站点,在它们所在的服务器和Internet之间具有代理。
WP中的某些功能根本不起作用:
我们手动进行所有操作,除了页面加载速度缓慢之外,实际上没有任何问题。看来,除了添加媒体外,几乎管理员中的所有内容都需要4-5秒来处理-这出奇的快。
为了加快后端速度,我可以检查或执行哪些初始操作?(前端飞行)
Answers:
您可以做的一件事是将jQuery移至页脚博客文章中。默认情况下,标题中不需要它。您将检查是否一切仍然正常,因为我通常只针对主题进行操作:
<?php
/* Plugin Name: Move jQuery to the footer */
function( 'admin_enqueue_scripts', function( $hook )
{
$GLOBALS['wp_scripts']->add_data( 'jquery', 'group', 1 );
} );
加快帖子列表表格屏幕显示速度的另一件事是减少查询字段的数量。我前一段时间注意到了这个问题,当时由于我的999个帖子设置,这些屏幕的加载速度太慢。完整的博客文章-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;
} );
每个用户都进入仪表板-这可能是管理UI中最慢的部分。您可以停用一些不需要的小部件,而不仅仅是隐藏它们:
<?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' );
} );
我只建议您使用SergejMüller的Snitch监视哪些数据试图离开您的安装。该插件可以禁止所有或仅特定连接,以及针对特定任务(例如不需要的cron作业和类似内容)的特定内部连接。如果您不想要完整的软件包,可以查看其源代码作为示例。谢尔盖通常写入非常慷慨的白色空间使用可读的代码。
我建议安装此https://github.com/johnbillion/query-monitor并查看以下内容:内存使用率,HTTP请求,AJAX和慢查询。
可能是您的修订版,插件的AJAX,错误的查询等。
您将能够查看是否需要向服务器添加更多RAM,这通常可以解决许多加载缓慢的管理员问题,尤其是在管理员中有多个编辑器的情况下。
但是,除了这里的一些技巧之外,还没有一种解决方案可以解决所有问题,您还需要查看主题插件如何与管理员交互。
除了上面的一些很好建议的答案之外,您还可以限制或禁用wordpress“心跳”,如果打开的屏幕很多或一次使用的用户很多,这可能会大大降低管理员的速度。实际上,像WP-Engine这样的几台主机会自动更改此设置。
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 );
您可能要尝试的另一件事是修改某些wp-config.php
常量。关闭发布修订将毫无疑问地有所帮助,但是如果您不想这样做,则至少可以限制修订。
define('WP_POST_REVISIONS', 5);
我通常为了使事情保持最佳状态而更改的另外两个常量是空垃圾桶和自动保存的那些。
define('AUTOSAVE_INTERVAL', 600);
define( 'EMPTY_TRASH_DAYS', 3 );
define( 'WP_HTTP_BLOCK_EXTERNAL', true );
在中定义来阻止外部请求wp-config.php
。WordPress管理员也Open Sans
从Google 排队入队和其他字体。您也可以禁用它。它使加载管理部分更快一些。