मैं अपने WP व्यवस्थापक अनुभाग को कैसे गति दे सकता हूं?


12

हमारे पास सर्वरों के बीच एक प्रॉक्सी के साथ कई WP साइटें हैं जो वे और इंटरनेट पर बैठे हैं।

WP में कुछ चीजें बस काम नहीं करती हैं:

  • RSS डैशबोर्ड पर फ़ीड करता है
  • विषयों को देख रहे हैं
  • प्लगइन्स देख रहे हैं
  • कोर अपडेट

हम सब कुछ मैन्युअल रूप से करते हैं और पेज लोड पर SLOWNESS को छोड़कर वास्तव में कोई समस्या नहीं है। ऐसा लगता है कि व्यवस्थापक में लगभग हर चीज को मीडिया को जोड़ने के अलावा प्रक्रिया में 4-5 सेकंड लगते हैं - जो आश्चर्यजनक रूप से तेज है।

बैक-एंड को तेज करने के लिए मैं कुछ शुरुआती चीजें क्या कर सकता हूं? (सामने का हिस्सा उड़ता है)


3
आप define( 'WP_HTTP_BLOCK_EXTERNAL', true );में परिभाषित करके बाहरी अनुरोधों को अवरुद्ध कर सकते हैं wp-config.php। साथ ही वर्डप्रेस एडमिन Open Sansगूगल से अन्य फोंट और अन्य फोंट भी लेता है । आप उसे भी अक्षम कर सकते हैं। यह लोड एडमिन सेक्शन को थोड़ा तेज़ करता है।
रॉबर्ट ह्यू 15

@ रॉबर्ट - यह लगभग ऐसा लगता है कि व्यवस्थापक के बहुत सारे पृष्ठ वेब पर कॉल कर रहे हैं। हम उन सभी को बंद करना चाहेंगे। यह कैसे प्रतिक्रिया करता है यह देखने के लिए अब बाहरी अनुरोध को जोड़ना।
STING

1
@Roberthue - मुझे यकीन नहीं है कि मैंने पहले कभी इसका इस्तेमाल क्यों नहीं किया - क्या आप जानते हैं कि WP_HTTP_BLOCK_EXTERNAL को पहली बार कब लागू किया गया था। मैंने इसे अपने प्लगइन में जोड़ा है (एक प्लगइन जिसे मैं हर जगह प्रचारित करता हूं) और सभी पृष्ठों को लोड करने का तरीका तेज है। कृपया इसे उत्तर के रूप में और ग्रिडलेस के लिए किसी अन्य सुझाव के रूप में जोड़ें।
एसटी

यह कुछ वर्षों के लिए वहाँ गया है। निश्चित रूप से निश्चित नहीं है कि इसे कब जोड़ा गया था। मैं भी जब मैं इस लेख
रॉबर्ट hue

1
कृपया उत्तर के रूप में। इसके अलावा यह बहुत लंबे समय के लिए रहा है, शायद (लगभग) जब तक कि HTTP एपीआई ही।
रारस्ट

जवाबों:


12

पाद में jQuery / जावास्क्रिप्ट

एक चीज जो आप कर सकते हैं वह है jQuery को पाद लेख ब्लॉग पोस्ट पर ले जाना । यह डिफ़ॉल्ट रूप से हैडर में आवश्यक नहीं है। आप जाँच करेंगे कि क्या सब कुछ अभी भी कठिन काम करता है, जैसा कि मैं सामान्य रूप से सिर्फ विषयों के लिए करता हूं:

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

प्रश्नों

पोस्ट सूची तालिका स्क्रीन को गति देने वाली एक और बात यह है कि queried फ़ील्ड की संख्या को कम करना है। मैंने कुछ समय पहले उस समस्या पर ध्यान दिया था जब वे स्क्रीन मेरी 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' );
} );

आउटगोइंग डेटा

मैं सिर्फ यह जानने के लिए कि आपके इंस्टॉलेशन को छोड़ने की कोशिश करता है, यह जानने के लिए कि वह क्या कर रहा है, मॉनिटर करने के लिए मैंक्रिक म्युलर द्वारा Snitch का उपयोग कर सकता हूं । प्लगइन सभी या सिर्फ विशिष्ट कनेक्शनों के साथ-साथ पिन को विशिष्ट आंतरिक कनेक्शनों को दबाने की अनुमति देता है जो अवांछित क्रोन नौकरियों और इसी तरह की चीजों को लक्षित करते हैं। यदि आप पूर्ण पैकेज नहीं चाहते हैं तो आप उदाहरण के लिए इसके स्रोत को देख सकते हैं। सामान्य रूप से एक सफेद स्थान के उपयोग के साथ फ्रैंकफर्ट बहुत पठनीय कोड लिखता है ।


1
आप प्लग इन डीबग ऑब्जेक्ट्स के माध्यम से उपयोगी सूचनाओं को भी देख सकते हैं, कौन सी क्वेरी, फ़ंक्शन निकाल दिए गए थे और कितने समय तक चले। साथ ही किस फंक्शन से, प्लगइन क्वेरी आती है।
16

4

मैं इस https://github.com/johnbillion/query-monitor को स्थापित करने और निम्नलिखित को देखने की सलाह देता हूं : मेमोरी उपयोग, HTTP अनुरोध, AJAX और धीमी क्वेरी।

यह आपके संशोधन, एक प्लगइन का AJAX, खराब क्वेरी आदि हो सकता है।

आप यह देख पाएंगे कि क्या आपको अपने सर्वर में अधिक रैम जोड़ने की आवश्यकता है जो आमतौर पर बहुत धीमे लोडिंग व्यवस्थापक समस्याओं को हल करता है, खासकर यदि आपके पास व्यवस्थापक में कई संपादक हैं।

लेकिन यहां कुछ ट्रिक्स के अलावा और सभी एक समाधान में नहीं है, आपको यह जांचने की आवश्यकता है कि कैसे प्लगइन्स व्यवस्थापक के साथ बातचीत कर रहे हैं।


2

ऊपर दिए गए कुछ अच्छी तरह से सुझाए गए उत्तर के साथ आप वर्डप्रेस "हार्टबीट" को सीमित या निष्क्रिय कर सकते हैं जो नाटकीय रूप से आपके व्यवस्थापक को धीमा कर सकता है यदि आपके पास एक साथ कई स्क्रीन खुली हैं या कई उपयोगकर्ता उपयोग कर रहे हैं। 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 );

कोई दिक्कत नहीं है। कुछ और विकल्प भी जोड़े।
ब्रायन विलिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.