Como trabalhar perfeitamente entre locais de desenvolvimento, implantação e produção em wordpress

Estou procurando uma solução para parar de codificar como um menino de garotas no WordPress

Quero colocar um sistema de version control (git ou bitbucket) com um site de desenvolvimento, implantação e produção. Algo assim

dev.site.com

staging.site.com

site.com

ou

site.com/dev

site.com/staging

site.com

Se possível, existe um plugin ou sistema para empurrar de uma versão para outra.

Sem ter o problema da base de dados?

Se você o que me avisar em qualquer programa que eu possa usar para esse propósito no ubuntu.

Obrigado pela ajuda?

Solutions Collecting From Web of "Como trabalhar perfeitamente entre locais de desenvolvimento, implantação e produção em wordpress"

Há um bom artigo no WP Tavern que sugere alguns bons methods. Há também um plugin chamado WP Pusher.

No que diz respeito ao uso dos diferentes domínios, como dev, encenação, produção, etc., você pode configurar diferentes reposições remotas para dev, encenação, produção, etc. E, em seguida, você pode empurrá-los individualmente dependendo do estágio de desenvolvimento em que você estiver .

No entanto, se você estiver usando o Ubuntu localmente, eu configurarei uma pilha LAMP rápida para o seu ambiente de desenvolvimento. Dessa forma, você pode ver as mudanças ao vivo sem precisar empurrar para o seu repo remoto cada vez que você faz uma mudança.

Se você estiver usando um Mac, verifique Homebrew, que cria um ótimo ambiente local.

Eu recomendaria que você defina uma constante ENV no wp-config de cada ambiente.

  • Para dev: define (‘ENV’, ‘dev’);
  • Para fase: define (‘ENV’, ‘estágio’);
  • Para aceitar: define (‘ENV’, ‘aceitar’);
  • Para live: define (‘ENV’, ‘live’);

Para se certificar de que seus ambientes não-ativos não estão sendo indexados, você pode usar uma function simples como essa, que define o seu blog como não público, quando o ENV não está configurado para viver.

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' );