wake-up-neo.com

So arbeiten Sie nahtlos zwischen Entwicklungs-, Staging- und Produktionsstandorten in WordPress

bin auf der Suche nach einer Lösung, mit der ich aufhören kann, auf WordPress wie ein Cowboy zu programmieren

Ich möchte ein Versionsverwaltungssystem (Git oder Bitbucket) mit einer Entwicklungs-, Staging- und Produktionssite einrichten. Etwas wie das

dev.site.com

staging.site.com

site.com

oder

site.com/dev

site.com/staging

site.com

Wenn möglich, gibt es ein Plugin oder System, um von einer Version zu einer anderen zu pushen.

Ohne das Datenbankproblem zu haben?

Wenn Sie mir was zu einem Programm raten, das ich für diesen Zweck auf Ubuntu verwenden kann.

Danke für Ihre Hilfe?

2
15eme Doctor

Es gibt einen guten Artikel bei WP Tavern , der einige gute Methoden vorschlägt. Es gibt auch ein Plugin namens WP Pusher.

In Bezug auf die Verwendung der verschiedenen Domänen, wie Entwickler, Staging, Produktion usw., können Sie verschiedene Remote-Repositorys einrichten für Entwickler, Staging, Produktion usw. festlegen. Anschließend können Sie die einzelnen Domänen abhängig davon, was Sie tun, einzeln pushen Entwicklungsstadium, in dem Sie sich befinden.

Wenn Sie jedoch Ubuntu lokal verwenden, würde ich einen schnellen LAMP-Stack für Ihre Entwicklungsumgebung einrichten. Auf diese Weise können Sie Änderungen live sehen, ohne jedes Mal, wenn Sie eine Änderung vornehmen, auf Ihr Remote-Repo pushen zu müssen.

1
thnx-236659

Wenn Sie einen Mac verwenden, aktivieren Sie Homebrew , wodurch eine fantastische lokale Umgebung entsteht.

Ich würde empfehlen, dass Sie in der WP-Konfiguration jeder Umgebung eine ENV-Konstante definieren.

  • Für dev: define ('ENV', 'dev');
  • Für stage: define ('ENV', 'stage');
  • Zum Akzeptieren: define ('ENV', 'accept');
  • Für live: define ('ENV', 'live');

Um sicherzustellen, dass Ihre nicht aktiven Umgebungen nicht indiziert werden, können Sie eine einfache Funktion wie diese verwenden, mit der Ihr Blog auf nicht öffentlich gesetzt wird, wenn die ENV nicht aktiv ist.

function set_robots() {
    $blog_public = get_option('blog_public');
    if ( ENV == 'live' ) {
        if ( $blog_public == 0 ) {
            update_option('blog_public', 1);
        }
    } else {
        if ( $blog_public == 1 ) {
            update_option('blog_public', 0);
        }
    }
}
add_action( 'admin_head', 'set_robots' );
0
Beee