WordPress फ़ाइलों के बाहर वर्डप्रेस फ़ंक्शंस का उपयोग करने का सही तरीका क्या है?


59

मैंने वर्डप्रेस फ़ाइलों के बाहर वर्डप्रेस फ़ंक्शन को शुरू करने के लिए 2 तरीकों के बारे में पढ़ा है ताकि हम वर्डप्रेस ब्लॉग के बाहर किसी भी पेज या वेबसाइट पर इन कार्यों का उपयोग कर सकें।

इन 2 विधियों में से कौन सा सही है? यदि दोनों सही हैं, तो प्रत्येक विधि के लिए उपयोग के मामले क्या हैं? एक विधि या दूसरे का उपयोग करने के बीच क्या अवरोध है?

विधि 1:

<?php 
    define('WP_USE_THEMES', false);
    require('./wp-blog-header.php');
?>

विधि 2:

<?php 
    define('WP_USE_THEMES', false);
    require('./wp-load.php');
?>

कौन से WP फ़ंक्शन आप "WP के बाहर" का उपयोग करने की कोशिश कर रहे हैं और क्यों? इन विधियों में से कोई भी अभी भी WP वातावरण (विषय समर्थन के बिना यद्यपि) को लोड करेगा, इसलिए आप अभी भी WP के अंदर कार्य कर रहे हैं ।
ईमान

मैं 2 तरीकों के बीच के अंतर को समझने की कोशिश कर रहा हूं। मैं क्या करूँगा अपने समर्थन स्क्रिप्ट के साथ WordPress विषय को एकीकृत है। इसलिए वर्डप्रेस से हेडर, फुटर और लूप की आवश्यकता होगी, विगेट्स और अन्य प्लगइन्स के लिए कुछ समर्थन
alhoseany

मुझे वास्तव में संदेह है कि आप जिस तरह से चीजें करना चाहते हैं ... वर्डप्रेस को बूटस्ट्रैप करने की कोशिश करने से बेहतर समाधान हैं।
ईमान

मैं सुझावों के लिए व्यापक हूं, मैं चीजों को करने का सबसे अच्छा तरीका ढूंढ रहा हूं? बाहर वेब एप्लिकेशन के साथ वर्डप्रेस थीम को एकीकृत करने का सबसे अच्छा तरीका क्या है?
अल्होसैनी

जवाबों:


58

फ़ाइलों के बीच थोड़ा अंतर है। जब आप एक वर्डप्रेस पेज देखते हैं, तो पहली फाइल होती है index.php। और यह अनिवार्य रूप से, आपकी "विधि 1:" है

define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require ('./wp-blog-header.php');

ब्लॉग हेडर फ़ाइल (जो वर्डप्रेस के बाकी हिस्सों को कतार में wp-load.phpरखता है ) सीधे लोड होती है और वर्डप्रेस को आग लगा देती है। यहाँ सबसे अधिक है wp-blog-header.php:

if ( !isset($wp_did_header) ) {

    $wp_did_header = true;

    require_once( dirname(__FILE__) . '/wp-load.php' );

    wp();

    require_once( ABSPATH . WPINC . '/template-loader.php' );

}

तो आपके दो तरीकों के बीच अंतर है ... क्या लोड है।

विधि 1 ठीक वही है जो वर्डप्रेस खुद को लोड करने के लिए करता है (थीम बंद करने के अपवाद के साथ)। इसलिए यदि आपको सभी वर्डप्रेस की आवश्यकता है और सभी डिफ़ॉल्ट हुक / कार्यों को फायर करना चाहते हैं, तो उस मार्ग के साथ जाएं।

विधि 2 लाइन के नीचे एक और कदम है। यह सभी वर्डप्रेस को लोड करता है, लेकिन wp()टेम्प्लेट लोडर को कॉल या इनवॉइस नहीं करता है (थीम द्वारा उपयोग किया जाता है)। विधि 2 थोड़ा हल्का होगा, लेकिन आपको उसी तरह की कार्यक्षमता देनी चाहिए।


3
वहाँ एक आरेख या कुछ है जो इन सभी फ़ाइलों को मैप करता है? मैंने एक लंबे समय से पहले देखा था, लेकिन मुझे यह नहीं मिला।
निंजा ०8

17

विधि 2 अपने प्रश्न से:

<?php 
define( 'WP_USE_THEMES', false ); // Don't load theme support functionality
require( './wp-load.php' );

wp-load.phpवर्डप्रेस के सभी कार्यों की पहुँच है, बस। पहली पंक्ति वर्डप्रेस को थीम फ़ाइलों को लोड करने के लिए कहती है; हो सकता है कि फाइलें आपकी आवश्यकताओं के लिए आवश्यक हों, फिर लाइन हटा दें।


1
उस पहली पंक्ति का क्या अर्थ है?
सगिव एसईओ २ Sag

8
पहली पंक्ति वर्डप्रेस से कहती है कि वह अपने सभी थीम सपोर्ट फंक्शनालिटी को लोड न करें। मूल रूप से, कम फ़ाइलों को लोड करें।
ईमान

क्या पहली विधि के लिए केवल पहली पंक्ति की आवश्यकता है?
मोंट

4

wp-blog-header.php हैडर स्टेटस अटैच करेगा, यह 404 का http स्टेटस कोड लौटाएगा

wp-load.php नहीं करेगा

अजाक्स का उपयोग करते समय ध्यान देने योग्य उपयोगी है क्योंकि यह http स्थिति कोड की जांच करता है


2

कभी-कभी फ़ंक्शन के फ़ंक्शन को लोड करने से। आपको कुछ परेशानी हो सकती है। यह मेरे दूसरे पेज का html तोड़ रहा था। इसलिए मैंने यही किया और अपनी समस्या हल की:

define('STYLESHEETPATH', '');
define('TEMPLATEPATH', '');
require_once(RAIZ_WORDPRESS."/wp-load.php");

0

@ ninja08

हम स्क्रिप्ट का विश्लेषण करने के लिए xDebug php एक्सटेंशन का उपयोग कर सकते हैं।

बस पहली पंक्ति से हटाकर ;xdebug.profiler_enable = 1अपनी php.iniफ़ाइल में सक्षम करें ;और इसके बाद अपाचे सर्वर को पुनरारंभ करें और अपनी वर्डप्रेस साइट को चलाएं ... अब आपके xampp सर्वर की tmp निर्देशिका में बनाई गई एक फ़ाइल .. WincachGrind एप्लिकेशन के साथ इस फ़ाइल को खोलें

अब आप अपनी स्क्रिप्ट का एक नक्शा देख सकते हैं

WincacheGrind सरल वर्डप्रेस विश्लेषण


आपको इसे निनजा 0 के नीचे टिप्पणी में जोड़ा जाना चाहिए। यह अब एक गलत जवाब है।
अलहोसनी

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