Проблема
Я збираюся розпочати розробку WordPress у командному середовищі для багатьох людей. (3 і більше людей, які працюють над однією і тією ж базою кодів одночасно, кожен розвивається локально)
З іншими CMS, з якими ми працювали, кожен вказав на свої встановлення на ту саму базу даних, і тому, як ця CMS / база даних працювала, це означає, що ми можемо мати один і той же вміст, що подається в наші інсталяції (розташовані з різними URL-адресами) від та сама база даних без особливих проблем (за винятком випадків, коли потрібно синхронізувати папки для завантаження)
Моє запитання, що стосується WordPress, що заважає нам використовувати цей самий підхід і як ми можемо вирішити ці проблеми?
напр. Три копії WordPress, усі вони працюють із однієї бази даних.
http: //dev.local/developer-a/
http: //dev.local/developer-b/
http: //dev.local/developer-c/
тощо
Я сподіваюся, що само собою зрозуміло, що це буде лише в середовищі розробки до запуску.
Основні питання
- Посилання на конкретні URL-адреси в базі даних (
wp_posts
іwp_options
таблиці, здається) - Якщо одна людина встановить плагін, інший встановить його не буде, і це спричинить проблеми одночасності в базі даних
- Синхронізація зберігання папок
Поточне рішення
Наразі у мене є початки рішення першого питання. Я розміщую наступне у файлі у своїй папці mu-plugins.
Код по суті фільтрує вміст публікації, коли він потрапляє в базу даних і виходить, замінюючи будь-який примірник URL-адресою унікальним маркером.
<?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');
Я встановив параметри дому та siteurl через php, використовуючи середовище, де встановлено WordPress, щоб їх розробити. (знову ж таки, це лише для розробки) Це означає, що для кожної окремо встановленої WordPress публікації вміст буде виглядати так, як він працює на цій URL-адресі до моменту, коли він потрапить до клієнта.
<?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-адрес? Чи є щось, що я пропустив, що дозволило б ввести URL-адресу в базу даних?
Будь-які готчі, про які я маю знати з символікою?
Будь-які інші питання, про які хтось може придумати?
Я усвідомлюю, що ці питання є дуже конкретними, якщо щось незрозуміле, прокоментуйте це, і я внесу зміни та уточнення.
Дякую.