WordPressデータベースを移植可能でURLに依存しないようにするにはどうすればよいですか?
問題 多人数チーム環境でWordPressの開発に着手しようとしています。(同時に3人以上が同じコードベースで作業し、それぞれがローカルで開発しています) 私たちが協力してきた他のCMSでは、誰もが同じデータベースでインストールを指定しました。そのCMS /データベースがどのように機能したかにより、同じコンテンツを(異なるURLにある)インストールにフィードできるようになりました。同じデータベースで多くの問題はない(アップロードフォルダーを同期する必要がある場合を除く) 私の質問は、WordPressでこれと同じアプローチを使用できない理由と、これらの問題をどのように解決できるかということです。 例えば。WordPressの3つのコピーがすべて同じデータベースで実行されています。 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'); WordPressがインストールされている環境を使用して、phpを介してhomeおよびsiteurlオプションを設定しました。(これも開発専用です)つまり、個々のインストールでは、WordPressの投稿コンテンツは、クライアントに到達するまでにそのURLで実行されているように見えます。 …