¿Guión o guión bajo en el nombre de la carpeta del tema?
Estoy confundido y no encontré ninguna respuesta al buscar en Google. Mis archivos de tema como single.php
o header.php
residen en una carpeta. ¿Debería usar guiones o guiones bajos en el nombre de la carpeta? Mi servidor web funciona con Linux/Apache y no estoy seguro de las consecuencias respecto a los nombres de carpetas. Entonces, ¿debería preferir algo como
my_wordpress_theme_folder
en lugar de
my-wordpress-theme-folder
o ambos son igualmente válidos?

En resumen, no existe una convención bien definida para nombrar el directorio de un tema, y todas las siguientes opciones son válidas (entre otras):
my_wordpress_theme
my-wordpress-theme
(empíricamente la opción más popular dentro del ecosistema)MyWordPressTheme
mywordpresstheme
(lo que usan los temas predeterminados)
Detalles
El Manual de Estándares de Codificación PHP de WordPress establece que los nombres de archivos deben estar en minúsculas y separados por guiones. Como señala Squish, varias rutinas en la Jerarquía de Plantillas de WordPress dependen de esta convención para cargar automáticamente plantillas en ciertas situaciones.
Dicho esto, no romperás Linux o Apache al usar guiones bajos en lugar de guiones (aunque sí romperás archivos cargados convencionalmente en la jerarquía de plantillas). Los directorios no parecen tener convenciones bien definidas, pero como regla general evita espacios en todos tus nombres. Los puntos pueden o no tener efectos no deseados en los nombres de directorios, particularmente ya que las convenciones *NIX tradicionalmente manejan los directorios que comienzan con un punto como "ocultos."
Como la función scandir()
de la clase WP_Theme utiliza directamente la función scandir()
de PHP seguida de is_dir()
para enumerar los temas individuales en un directorio en lugar de probar las convenciones de nomenclatura de las entradas, en realidad no debería importar cómo nombres tus directorios, ya que WordPress en gran medida ignora el nombre del directorio para este propósito. Puedes leer los comentarios en la página de is_dir()
para algunas advertencias específicas. Más que nada, asegúrate de que los nombres de tus directorios funcionen en formato URL y sean navegables por un navegador web.
Los temas incluidos con WordPress utilizan una convención de nomenclatura de directorios con todas las letras en minúsculas y sin puntuación, es decir, twentytwelve
, twentythirteen
, etc.

Gracias. No me gusta eliminar toda la puntuación por 1) razones de legibilidad y, en menor medida, 2) razones de SEO (los guiones ayudan a Google a reconocer palabras separadas). Así que me quedaré con los guiones tanto para nombres de archivos como de carpetas.

Estoy de acuerdo contigo en lo de no eliminar la puntuación. Siempre se ve desordenado y genera mala comunicación. Usar CamelCase tampoco es mucho mejor, ya que la mayoría de los servidores web consideran el nombre intercambiable con su versión en minúsculas por defecto. ¡Buen punto sobre el SEO, no lo había considerado antes!

Para los directorios es cuestión de preferencia personal (también puedes usar espacios... aunque no es muy recomendable).
Sin embargo, la convención en WordPress parece ser usar guiones.
Especialmente porque WordPress sí utiliza guiones para archivos especiales.
Por ejemplo, cuando estás creando plantillas de páginas, puedes hacer un archivo llamado "page-especial" y la plantilla se cargará automáticamente para la página con el nombre "especial" (ej. sitio.com/especial).

Sí, soy consciente de eso. No estoy seguro si eso también aplica para los nombres de directorios. Solo quiero asegurarme de que no habrá efectos secundarios no deseados si lo hago...

Entonces quédate con guiones. A menos que tengas una razón específica para hacer algo diferente. Es más fácil seguir con la convención establecida. Si quieres experimentar, asegúrate de usar un servidor local. (Acabo de intentar hacer una conversión rápida del directorio principal de un tema y obtuve un gran error.)

Ambos son válidos para nombres de carpetas. La mayoría de los ejemplos que encontrarás usan guiones, pero he visto que algunos generadores usan guiones bajos debido a problemas con JavaScript y los guiones.
Aunque esto es una generalización, ya que https://github.com/yeoman/generator-backbone/issues/2 sigue utilizando guiones.
