Konu
Çok kişilik bir ekip ortamında bazı WordPress geliştirmelerine başlamak üzereyim. (Her biri yerel olarak gelişen, aynı kod tabanında aynı anda çalışan 3 veya daha fazla kişi)
Çalıştığımız diğer CMS'lerle, herkes yüklemelerini aynı veritabanına işaret etti ve bu CMS / veritabanı nasıl çalıştığından, yüklemelerimize (farklı URL'lerde bulunan) aynı içeriğin beslenmesinden hepimiz anlamına geliyordu. aynı veritabanı çok fazla sorun olmadan (zaman zaman yükleme klasörlerini senkronize etmek zorunda kalmadan)
Benim sorum WordPress ile aynı yaklaşımı kullanmamızı engelleyen nedir ve bu sorunları nasıl çözebiliriz?
Örneğin. Aynı veritabanında üç WordPress kopyası çalışıyor.
http: //dev.local/developer-a/
http: //dev.local/developer-b/
http: //dev.local/developer-c/
vb
Umarım bu sadece lansmandan önce bir geliştirme ortamında olacaktır.
Ana konular
- Veritabanı içindeki belirli URL'lere (
wp_posts
vewp_options
göründüğü tablolara) referanslar - Bir kişi bir eklenti yüklerse, diğer yüklemeler buna sahip olmaz ve veritabanında eşzamanlılık sorunlarına neden olur
- Yüklenen klasörleri senkronize tutma
Mevcut Çözüm
Şu anda ilk sorun için bir çözüm başlangıcı var. Aşağıdakileri mu-plugins klasörümdeki bir dosyaya yerleştiriyorum.
Kod, URL'nin herhangi bir örneğini benzersiz bir jetonla değiştirerek posta içeriğini veritabanına girip çıkarken filtreler.
<?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');
WordPress'in çalıştığı ortamı kullanarak php üzerinden ev ve siteurl seçeneklerini ayarladım. (yine, bu sadece geliştirme amaçlıdır) Bu, her bir yükleme için WordPresses yazı içeriğinin, istemciye ulaştığında o url'de çalıştığı gibi görüneceği anlamına gelir.
<?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');
}
İkinci ve üçüncü konular uygun sembollerle çözülebilir gibi görünüyor (hepsi aynı makinede gelişiyor)
Gerçek Sorular
Farklı URL'lerle ilgili işlemimi yine de iyileştirebilir miyim? URL veritabanına sabit kodlanmış olacak kaçırdığım bir şey var mı?
Symlinking ile bilmem gereken var mı?
Herkesin düşünebileceği başka konular var mı?
Bu soruların çok spesifik olduğunu anlıyorum, eğer bir şey net değilse, bu konuda yorum yapın ve değiştireceğim / açıklayacağım.
Teşekkürler.