WordPress como un submódulo de git

Siguiendo el siguiente instructivo “Install and manage wordpress with git”, que está clarísimo, cambié la instalación de WordPress, a la forma de submódulo de git. Esto me permite mantener actualizado a la versión de desarrollo con un simple comando. WordPress mantiene el repositorio sincronizado cada 15 minutos con SVN, básicamente es un espejo del repositorio de desarrollo.

En mi caso los pasos fueron los siguientes:

  1. Eliminar todos los archivos de la antigua instalación, salvo el wp-config.php, el .htaccess y todo el directorio wp-content/
  2. Agrego el repositorio de wordpress como un submódulo: git submodule add git://github.com/WordPress/WordPress.git wordpress. Esperamos un poco a que termine de bajar.
  3. Commiteamos lo hecho: git commit -m "Add WordPress subrepository."
  4. El siguiente paso del instructivo es para mantenerse en la versión estable, en mi caso lo obvie por que quiero probar las características nuevas de wordpress lo antes posible y dentro de mis posibilidades ayudar a debuggear un poco, en este blog que es mío.
  5. Copiamos el index.php al directorio raiz: cp wordpress/index.php .
    git add index.php
    git commit -m "Adding index.php"
  6. Ahora configuramos:
    • En index.php cambiamos la línea: require( dirname( __FILE__ ) . '/wp-blog-header.php' ) por require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' )
    • En wp-config.php agregamos estas dos lineas al inicio:

      define('WP_SITEURL', 'http://' . $_SERVER['SERVER_NAME'] . '/wordpress');
      define('WP_HOME', 'http://' . $_SERVER['SERVER_NAME']);
      define('WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/wp-content');
      define('WP_CONTENT_URL', 'http://' . $_SERVER['SERVER_NAME'] . '/wp-content');

      Estas líneas permiten redefinir los directorios de instalación y el wp-content particularmente para que utilice el que tenemos en el directorio raíz y no el que viene en la instalación.
  7. Ahora commiteamos estos cambios: git commit -am "Update settings"

Eso es todo, ahora cuando queremos actualizar simplemente nos movemos al directorio de WordPress dentro de nuestro repositorio y hacemos: git pull origin master o bien en la raíz del repositorio hacemos: git submodule -q foreach git pull -q origin master para actualizar todos los submódulos que tengamos de un saque.

En el caso de un sitio de producción conviene trabajar con la versión estable de wordpress, eso seria así:

  • nos movemos al subrepositorio de wordpress (cd wordpress) y hacemos:
    git fetch --tags
    git checkout 3.3.2

    Reemplazando 3.3.2 con el numero de versión correcto.
  • Volvemos al raíz y commiteamos la nueva versión