Composer/WordPress: el directorio wp-content debe o no debe comprometerse

4 minutos de lectura

avatar de usuario
paulalexandru

Así que recientemente comencé a usar Composer con WordPress basado en este tutorial.

Este es mi composer.json expediente:

{
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "wordpress",
                "type": "webroot",
                "version": "4.3",
                "dist": {
                    "type": "zip",
                    "url": "https://github.com/WordPress/WordPress/archive/4.3.zip"
                },
                "require" : {
                    "fancyguy/webroot-installer": "1.0.0"
                }
            }
        }
    ],
    "require": {
        "wordpress": "4.*",
        "fancyguy/webroot-installer": "1.0.0"
    },
    "extra": {
        "webroot-dir": "public/wp",
        "webroot-package": "wordpress"
    }
}

Funcionó bien, obtuve esta estructura de carpetas:

ingrese la descripción de la imagen aquí

Como se mencionó en el tutorial, copié index.php, wp-config.php y el wp-content directorio fuera del wp directorio y reemplazó las rutas.

Todo funcionó perfecto hasta este punto:

Con respecto a la limpieza con su herramienta de administración de código fuente. Querría ignorar el archivo composer.phar y el directorio public/wp. Todo lo demás puede ser comprometido y empujado.

Así que parece que además de la public/wp carpeta, todo se puede confirmar y enviar. (incluida la carpeta wp-content)

Aquí está lo que no entiendo. Debemos comprometer/empujar el wp-content directorio porque tiene una ubicación diferente a la que solía tener, pero al mismo tiempo esto wp-content carpeta contiene el plugins y themes carpeta en la que se agregarán nuestros complementos y temas usando el compositor, que no debe confirmarse/empujarse, ¿verdad?

Los complementos y temas se agregarán en el entorno de desarrollo también usando composer, por lo que no debemos confirmarlos, pero están en el wp-content directorio que debe ser comprometido?

En otro tutorial similar el wp-content se establece en el .gitignore archivo, lo que significa que no debe ser comprometido/empujado. Pero si es así, ¿quién moverá (y cómo) el wp-content fuera de wp directorio sobre el entorno de desarrollo.

¿Alguien puede aclarar este aspecto por favor?

  • Confirmo wp-content y mi tema principal y excluyo todo lo demás con .gitignore. Luego uso el compositor para traer todos los complementos que necesito a través de wpackagist.org – por lo que su git contiene wp-content pero solo el tema y nada más (puede traer el tema también con el compositor si lo desea, pero para mí eso es como tener dos repositorios para un sitio)

    – Simón Pollard

    24 de noviembre de 2015 a las 14:54

es genial que tengas wp-content dividirse en un directorio separado.

Personalmente solo cometo artículos en wp-content que forman parte del proyecto actual. Otra forma de pensar en esto es cometer cualquier cosa no añadido con Composer.

Por ejemplo, podría estar trabajando en un sitio con un tema principal, que está incorporando con Composer y dejará sin modificar, y un tema secundario, en el que está realizando cambios.

En este ejemplo, el tema secundario debe confirmarse y el tema principal debe ignorarse, ya que solo está cambiando el código en el tema secundario.

los .gitignore archivo se vería así:

# Ignore everything in wp-content
wp-content/*

# Do not ignore the themes directory. This is needed to add the child theme (below)
!wp-content/themes

# Ignore all of the themes directory contents, including the parent theme
wp-content/themes/*

# Do not ignore the child theme
!wp-content/themes/child-theme/

Por lo general, también hago lo mismo con los complementos. Se ignoran todos los complementos extraídos por Composer, pero se confirman los complementos específicos del proyecto actual, que no usará en ningún otro lugar.

Espero que esto ayude.

avatar de usuario
VonC

La idea es: todo lo generado no debe ser versionado.

quién moverá (y cómo) el wp-content fuera de wp directorio en el entorno de desarrollo.

Ese es un problema de implementación, parte de la gestión de versiones.
Eso significa que un enlace posterior a la recepción en el lado del servidor estaría a cargo de generar el contenido correcto en función de las fuentes recién enviadas, y mover/copiar el wp-content carpeta, una vez que se haya actualizado su contenido.

El punto general es: generalmente se diferencia el control de versiones del despliegue. Mover contenido es algo que se hace en la implementación, durante la gestión de lanzamiento, por ejemplo, mediante un gancho que moverá los recursos correctos al lugar correcto.

  • ¿Qué quiere decir con generado y qué quiere decir con versionado? ¿Puedes explicar más por favor porque no entiendo?

    – paulalexandru

    23 de noviembre de 2015 a las 10:10


  • @paulalexandru “generado” significa que puede llamar a un comando que generará todos o algunos de los contenidos en wp-content. “versionado” significa agregado a tu control de fuente (git add, git commit)

    – VoC

    23 de noviembre de 2015 a las 10:14

  • Sí, pero el contenido de wp no se genera, ¿esto significa que debo confirmarlo? porque se generan las carpetas que están dentro.

    – paulalexandru

    23 de noviembre de 2015 a las 10:18

  • @paulalexandru puede agregar y comprometer solo lo que no se genera en wp-contentpero excluir (declarado en .gitignore) lo que se genera en wp_content.

    – VoC

    23 de noviembre de 2015 a las 10:27


  • Entonces, ¿debo confirmar el directorio wp-content en sí mismo? ¿Y qué quiere decir con Eso significa que un enlace posterior a la recepción en el lado del servidor estaría a cargo de generar el contenido correcto en función de las fuentes recién enviadas y mover/copiar la carpeta wp-content, una vez que su contenido se haya actualizado? ?

    – paulalexandru

    23 de noviembre de 2015 a las 12:08

¿Ha sido útil esta solución?