मुद्दा
मैं एक बहु व्यक्ति टीम वातावरण में कुछ वर्डप्रेस विकास को अपनाने वाला हूं। (एक बार में एक ही कोडबेस पर काम करने वाले 3 या अधिक लोग, प्रत्येक स्थानीय रूप से विकासशील)
हमने जिन अन्य CMSes के साथ काम किया है, सभी ने एक ही डेटाबेस पर अपने इंस्टॉल्स को इंगित किया है और इस वजह से कि CMS / डेटाबेस ने कैसे काम किया है, इसका मतलब है कि हम सभी को एक ही सामग्री हमारे इंस्टॉल्स (अलग-अलग यूआरएल में स्थित) से खिला सकते हैं। बहुत अधिक समस्या के बिना एक ही डेटाबेस (कभी-कभी अपलोड फ़ोल्डर को सिंक करने के अलावा)
मेरा सवाल है, वर्डप्रेस के साथ, हमें इस समान दृष्टिकोण का उपयोग करने से रोकता है और हम इन मुद्दों को कैसे हल कर सकते हैं?
जैसे। वर्डप्रेस की तीन प्रतियां सभी एक ही डेटाबेस से चल रही हैं।
http: //dev.local/developer-a/
http: //dev.local/developer-b/
http: //dev.local/developer-c/
आदि
मुझे उम्मीद है कि यह बिना कहे चला जाता है कि यह केवल लॉन्च से पहले एक विकास के माहौल में होगा।
मुख्य मुद्दे
- डेटाबेस के भीतर विशिष्ट यूआरएल का संदर्भ (
wp_posts
औरwp_options
ऐसा लगता है) - यदि कोई व्यक्ति एक प्लगइन स्थापित करता है, तो अन्य इंस्टॉलों में यह नहीं होगा और डेटाबेस में समसामयिक मुद्दों का कारण होगा
- अपलोड फ़ोल्डर को सिंक में रखते हुए
वर्तमान समाधान
वर्तमान में मेरे पास जगह में पहले मुद्दे के लिए एक समाधान की शुरुआत है। मैं अपने म्यू-प्लगइन्स फ़ोल्डर में एक फ़ाइल में निम्नलिखित को रखता हूं।
कोड अनिवार्य रूप से पोस्ट कंटेंट को फिल्टर करता है क्योंकि यह यूआरएल के किसी भी उदाहरण को एक अद्वितीय टोकन के साथ बदलकर डेटाबेस से बाहर जाता है।
<?php
define('PORTABILITY_TOKEN', '{_portable_}');
function portability_remove_home($content)
{
$content = str_replace(get_option('home'), PORTABILITY_TOKEN, $content);
return $content;
}
add_filter('content_save_pre', 'portability_remove_home');
function portability_add_home($content)
{
$content = str_replace(PORTABILITY_TOKEN, get_option('home'), $content);
return $content;
}
add_filter('the_content', 'portability_add_home');
add_filter('the_editor_content', 'portability_add_home');
मैंने php के माध्यम से घर और साइटुरल विकल्प निर्धारित किए हैं, जहां वर्डप्रेस को उन्हें काम करने के लिए स्थापित किया गया है। (फिर से, यह केवल विकास के लिए है) इसका मतलब यह है कि प्रत्येक व्यक्ति को इंस्टॉल करने पर वर्डप्रेस पोस्ट की सामग्री दिखेगी जैसे कि वह उस यूआरएल पर चल रहा है जब तक कि वह क्लाइंट को नहीं मिल जाता है।
<?php
if (!defined('WP_HOME'))
{
// define WP_HOME (aka url of install) based on environment.
// IF THIS ISN'T WORKING, DEFINE IT EARLIER.
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . str_replace($_SERVER['DOCUMENT_ROOT'], '', dirname(__FILE__) ) );
}
if (!defined('WP_SITEURL'))
{
// Assumes WordPress is in a separate directory called 'wp', relative to WP_HOME.
// IF IT'S DIFFERENT, DEFINE IT EARLIER.
define('WP_SITEURL', WP_HOME . '/wp');
}
दूसरे और तीसरे मुद्दे उचित सीलिंक के साथ हल करने लगते हैं (सभी एक ही मशीन पर विकसित हो रहे हैं)
वास्तविक प्रश्न
क्या मैं वैसे भी अलग-अलग url की अपनी हैंडलिंग में सुधार कर सकता हूं? क्या ऐसा कुछ है जो मैंने याद किया है जो यूआरएल को डेटाबेस में हार्डकोड करेगा?
किसी भी गोच को मुझे सिम्लिंकिंग के बारे में पता होना चाहिए?
किसी भी अन्य मुद्दों किसी के बारे में सोच सकते हैं?
मुझे लगता है कि ये प्रश्न बहुत विशिष्ट हैं, अगर कुछ भी स्पष्ट नहीं है, तो इस पर टिप्पणी करें और मैं इसमें संशोधन / स्पष्टीकरण दूंगा।
धन्यवाद।