我如何加快我的可湿性粉剂管理部分的速度?

时间:2014-10-28 作者:STing

我们有许多WP站点,在它们所在的服务器和internet之间有一个代理。

WP中的某些东西根本不起作用:

仪表板上的RSS提要查找主题查找插件核心更新我们手动执行所有操作,除了页面加载缓慢之外,没有其他问题。似乎除了添加媒体之外,admin中的几乎所有内容都需要4-5秒的时间来处理,这一速度惊人。

我可以检查或执行哪些初始操作来加速后端?(前端苍蝇)

3 个回复
SO网友:kaiser

页脚中的jQuery/JavaScriptmove jQuery to the footer blog post. 根据默认值,标题中不需要它。你需要检查是否一切都很困难,因为我通常只是针对主题这样做:

<?php
/* Plugin Name: Move jQuery to the footer */
function( \'admin_enqueue_scripts\', function( $hook )
{
    $GLOBALS[\'wp_scripts\']->add_data( \'jquery\', \'group\', 1 );
} );
查询另一个加快post列表屏幕速度的方法是减少查询字段的数量。不久前,我注意到了这个问题,当时由于我的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;
} );
仪表板

每个用户都进入仪表板-这可能是管理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\' );
} );
传出数据我建议使用Snitch by Sergej Müller 监视试图离开安装的数据。该插件允许抑制所有或只是特定连接,以及针对不需要的cron作业和类似任务的特定于pin点的内部连接。如果不需要完整的软件包,可以查看其源代码以获取示例。Sergej通常编写非常可读的代码,并大量使用空格。

SO网友:Wyck

我建议安装此https://github.com/johnbillion/query-monitor 看看以下内容:内存使用、HTTP请求、AJAX和慢速查询。

可能是您的修订、插件的AJAX、错误的查询等等。

您将能够看到是否需要向服务器添加更多RAM,这通常会解决许多加载缓慢的管理问题,尤其是在管理中有多个编辑器的情况下。

但除了一些技巧之外,这里并没有万能的解决方案,您需要检查主题插件是如何与管理员交互的。

SO网友:Bryan Willis

除了上面建议的一些答案之外,你还可以限制或禁用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 );

结束

相关推荐

添加_子菜单_页面()链接缺少‘admin.php?’前缀

我有两个插件——一个是名为“SmartPost”的“主要”插件,我正试图用另一个名为“SmartPost电子邮件”的插件对其进行扩展。因此,换句话说,“SmartPost电子邮件”扩展并依赖于“SmartPost”在电子邮件插件之前存在和加载。在SmartPost插件中,我有以下管理菜单创建功能:class sp_admin{ add_action( \'admin_menu\', array(\'sp_admin\', \'sp_admin_add_template_page\') );&