न्यूनतम वर्डप्रेस वातावरण लोड करें


12

मैंने अपनी वेबसाइट के लिए अपनी अपलोड सेवा बनाई जो WP से अलग है, लेकिन निम्न स्तर के db फ़ंक्शन और उपयोगकर्ता सत्यापन प्रदान करने के लिए WP का उपयोग करता है। ऐसा करने के लिए, मैं अपने मुख्य स्क्रिप्ट (अपलोड करें) में wp-load.php शामिल करता हूं लेकिन ऐसा करने से सर्वर की मेमोरी अनावश्यक घटकों के साथ भर जाती है। इसके लिए धन्यवाद, मैं अपनी स्क्रिप्ट में एक त्रुटि देख रहा हूं जो एक स्थापित WP प्लगइन को इंगित करता है।

मैं केवल कोर WP घटकों को कैसे लोड कर सकता हूं और प्लगइन्स को अनदेखा कर सकता हूं? क्या यह भी संभव है?


1
BackPress की जाँच करें ।
आत्मासेकाह

जवाबों:


9

प्लगइन्स को पूरी तरह से अक्षम करने का मतलब है कि आप कई फायदे ढीले कर सकते हैं।

वर्डप्रेस के वितरण हैं जो आगे बढ़ते हैं और पोस्ट और लिंक आदि को चीरते हैं, लेकिन वे हमेशा वर्डप्रेस कोर से पीछे रह जाएंगे और लंबे समय तक जीवित नहीं रहेंगे।

यहाँ कुछ चीजें हैं जो किया जा सकता है

शॉर्ट इनिट

इसे अपने wp-config.php में डालें:

define( 'SHORTINIT', TRUE );

या आपको वर्डप्रेस में लोड करने से पहले इसे कहीं और परिभाषित करना चाहिए, लोडिंग प्रक्रिया को कम करना चाहिए और इसे न्यूनतम कोर कार्यों में वापस लाना चाहिए।

माध्यमिक हल्के स्थापित करता है

एक दूसरा वर्डप्रेस इंस्टालेशन सेट करें, केवल प्लगइन्स और थीम के साथ जो आप चाहते हैं (यदि कोई हो)। फिर उसी wp-content निर्देशिका और डेटाबेस मानों का उपयोग करने के लिए wp-config.php कॉन्फ़िगर करें।

Backpress

वर्डप्रेस, मूल बीबीप्रेस और ग्लोटप्रेस अन्य लोगों के बीच बैकप्रेस लाइब्रेरी के आसपास बनाए गए हैं। आप अपने काम को करने के लिए वर्डप्रेस के बजाय इसका उपयोग कर सकते हैं, हालांकि कई एपीआई और सुविधाएं गायब हो सकती हैं या फिर से कार्यान्वयन / पोर्टिंग की आवश्यकता हो सकती है

विकल्प तालिकाएँ

मुझे यह भी ध्यान में रखना होगा कि वर्डप्रेस संपूर्ण विकल्पों की तालिका को प्रश्नों में कटौती करने के लिए मेमोरी में लोड करता है, यदि आप किसी बड़े मान को सहेज रहे हैं तो यह प्रदर्शन पर प्रभाव डालेगा।

जल्दी बाहर निकलना

आप वर्डप्रेस लोड प्रक्रिया में पहले के कार्यों में हुकिंग की कोशिश कर सकते हैं और वर्डप्रेस के समाप्त होने से पहले PHP प्रक्रिया से बाहर निकल सकते हैं, लेकिन मैं इस बात की सलाह नहीं दे सकता कि यह कितना सुरक्षित होगा।

चुनिंदा लोडिंग प्लगइन्स

यह लेख चुनिंदा लोडिंग प्लगइन्स पर भी है , लेकिन इसके लिए वर्डप्रेस कोर फ़ाइलों को हैक करने की आवश्यकता होती है


+1 एवर ने "सेकेंडरी लाइटवेट इंस्टॉल" की कोशिश की ?
केसर

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

8

BackPress का उपयोग करें , लेकिन मेरे पास छोटे विकास हैं, जहां मैं एक डिफ़ॉल्ट इंस्टॉल और छोटे स्रोत का उपयोग करता हूं।

पर देखें wp-settings.php

// Stop most of WordPress from being loaded if we just want the basics.
if ( SHORTINIT )
    return false;

सही में कॉन्स्टीट्यूशन सेट करें wp-config.phpऔर तेज़ रन देखें। define( 'SHORTINIT', TRUE );

ये वो फाइलें हैं जो आपको मिलती हैं:

// All are located in ABSPATH.WPINC
'/load.php'
'/default-constants.php'
'/version.php'
'/compat.php'
'/functions.php'
'/class-wp.php'
'/class-wp-error.php'
'/plugin.php'
'/default-filters.php'
'/pomo/mo.php'

// Only Multisite
'/ms-blogs.php'
'/ms-settings.php'

6

बनाने is_user_logged_in()और current_user_can()काम करने के लिए, मुझे यहां समान उत्तर मिला (कैंट कमेंट) यह जवाब यहां दिए गए जवाब से मेल खाता है, जैसे:

मैन्युअल रूप से define('SHORTINIT', true)+ का उपयोग करना require('wp-load.php')शामिल है:

पगेलोड: 1.05 sek - शामिल फाइलें: 43 फाइलें

तुलना: केवल का उपयोग कर require('wp-load.php'):

पगेलोड: 1.35 sek - शामिल फाइलें: 419 फाइलें

समय अंतर (0.3 sek) इंस्टाल और PHP इंजन से भिन्न हो सकता है, लेकिन एक पगेलॉड -थिंग्स पर कई अनुरोधों को मान्य करने पर यह जुड़ जाता है! / @ अन्नासन

WP स्थापित dir के लिए एक रिश्तेदार कॉल का उपयोग करना एक अच्छा विचार था। एक Wordpress कस्टम प्लगइन "रूट" जैसे:

$wordpress = '../../../wp-load.php';

फिर मेरे प्लगइन index.php के अंदर:

define('SHORTINIT', true);
include_once $wordpress;

require_once ( ABSPATH . WPINC . '/class-wp-user.php' );
require_once ( ABSPATH . WPINC . '/class-wp-roles.php' );
require_once ( ABSPATH . WPINC . '/class-wp-role.php' );
require_once ( ABSPATH . WPINC . '/class-wp-session-tokens.php' );
require_once ( ABSPATH . WPINC . '/class-wp-user-meta-session-tokens.php' );
require_once ( ABSPATH . WPINC . '/formatting.php' );
require_once ( ABSPATH . WPINC . '/capabilities.php' );
//require_once ( ABSPATH . WPINC . '/query.php' ); // - might be useful
require_once ( ABSPATH . WPINC . '/user.php' );
require_once ( ABSPATH . WPINC . '/meta.php' );

wp_cookie_constants();

require_once ( ABSPATH . WPINC . '/vars.php' );
require_once ( ABSPATH . WPINC . '/kses.php' );
require_once ( ABSPATH . WPINC . '/rest-api.php' );
require_once ( ABSPATH . WPINC . '/pluggable.php' );

इसके बाद, उपयोगकर्ता सत्यापन मेरे लिए काम कर रहा है। मूल कोड से @ अननानी अंतिम शब्दों के लिए धन्यवाद:

अन्य कार्यों के लिए, एक या दो अनुरोधों पर चल रहे हैं, अन्य आवश्यक फाइलों को ट्रैक करने का मूल्य 0.3 sek नहीं हो सकता हैSHORTINIT स्थिर और मैन्युअल अव्यवस्था छोड़ें ।


1
यह अब तक का सबसे साफ तरीका है। हमारे इंस्टॉल पर अजाक्स-कॉलिंग लोडिंग इमेजेज पर ठीक काम करना।
जोनास लुंडमैन

@cavameta क्या आप SHORTINIT के साथ वॉक करने के लिए वोकॉमर्स का आयात कैसे करते हैं?
वेबमैक्स

2

क्या आपने कोशिश की है define('SHORTINIT', true);? मैंने स्वयं इसका परीक्षण नहीं किया है, लेकिन यह पर्याप्त कार्यक्षमता को बनाए रखते हुए WP कोर के बहुत कम पहलुओं को लोड करने के लिए लगता है, खासकर यदि आप चाहते हैं कि डेटाबेस से निपटना है।

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