web-dev-qa-db-fra.com

Comment travailler de manière transparente entre les sites de développement, de transfert et de production dans wordpress

cherche une solution pour arrêter de coder comme un cow-boy sur WordPress

Je veux mettre un système de gestion de versions (git ou bitbucket) avec un site de développement, de stockage intermédiaire et de production. Quelque chose comme ça

dev.site.com

staging.site.com

site.com

ou

site.com/dev

site.com/staging

site.com

Si possible, existe-t-il un plugin ou un système à pousser d'une version à une autre.

Sans avoir le problème de base de données?

Si vous voulez me conseiller sur tout programme que je peux utiliser à cette fin sur Ubuntu.

Merci de votre aide?

2
15eme Doctor

Il existe un bon article dans WP Tavern qui suggère de bonnes méthodes. Il existe également un plugin appelé WP Pusher.

En ce qui concerne l’utilisation des différents domaines, tels que dev, staging, production, etc., vous pouvez mettre en place différents dépôts à distance pour dev, staging, production, etc. Vous pouvez ensuite y accéder individuellement en fonction de l’étape de la sauvegarde. développement que vous êtes po.

Toutefois, si vous utilisez Ubuntu localement, je configurerais une pile LAMP rapide pour votre environnement de développement. De cette façon, vous pouvez voir les changements en direct sans avoir besoin de Push vers votre dépôt distant à chaque fois que vous effectuez un changement.

1
thnx-236659

Si vous utilisez un Mac, vérifiez Homebrew qui crée un environnement local impressionnant.

Je vous recommande de définir une constante ENV dans la configuration wp de chaque environnement.

  • Pour dev: définir ('ENV', 'dev');
  • Pour l'étape: définir ('ENV', 'étape');
  • Pour accepter: définir ('ENV', 'accepter');
  • Pour vivre: définissez ('ENV', 'live');

Pour vous assurer que vos environnements non-live ne sont pas indexés, vous pouvez utiliser une fonction simple comme celle-ci, qui définit votre blog sur non public, lorsque ENV n'est pas défini sur Live.

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