Тире или подчеркивание в названии папки темы WordPress?
Я запутался и не смог найти ответ через Google. Мои файлы темы, такие как single.php
или header.php
, находятся в папке. Следует ли использовать тире или подчеркивание в названии папки? Мой веб-сервер работает на Linux / Apache, и я не уверен, какие последствия могут быть в отношении имен папок. Так что лучше использовать что-то вроде
my_wordpress_theme_folder
вместо
my-wordpress-theme-folder
или оба варианта одинаково допустимы?

Короче говоря, нет строго определенного соглашения по именованию директорий тем, и все следующие варианты являются допустимыми (среди других):
my_wordpress_theme
my-wordpress-theme
(эмпирически самый популярный вариант в экосистеме)MyWordPressTheme
mywordpresstheme
(используется в стандартных темах)
Подробности
Руководство по стандартам кодирования PHP в WordPress утверждает, что имена файлов должны быть в нижнем регистре и разделяться дефисами. Как отмечает Squish, различные механизмы в Иерархии шаблонов WordPress полагаются на это соглашение для автоматической загрузки шаблонов в определенных ситуациях.
Несмотря на это, использование подчеркиваний вместо дефисов не сломает Linux или Apache (хотя это может нарушить загрузку файлов по соглашению в иерархии шаблонов). Для директорий нет четко определенных правил, но в качестве общего совета избегайте пробелов в именах. Точки в именах директорий могут иметь или не иметь нежелательные эффекты, особенно учитывая, что в *NIX традиционно директории, начинающиеся с точки, считаются "скрытыми".
Поскольку функция scandir()
класса WP_Theme
напрямую использует PHP-функцию scandir()
с последующей проверкой через is_dir()
для перечисления тем в директории, а не проверяет соглашения по именованию, фактически не имеет значения, как названы ваши директории — WordPress в основном игнорирует имя директории для этой цели. Вы можете прочитать комментарии на странице is_dir()
для некоторых специфических предостережений. Главное — убедитесь, что имена директорий корректны в URL и доступны для веб-браузера.
Стандартные темы WordPress используют соглашение именования директорий в нижнем регистре без знаков пунктуации, например: twentytwelve
, twentythirteen
и т.д.

Спасибо. Я не люблю убирать всю пунктуацию по двум причинам: 1) для удобства чтения и, в меньшей степени, 2) для SEO (дефисы помогают Google распознавать отдельные слова). Поэтому я буду использовать дефисы как в именах файлов, так и в названиях папок.

Я полностью согласен с тобой насчёт сохранения пунктуации. Без неё всё выглядит неаккуратно и может привести к недопониманию. Использование CamelCase тоже не лучший вариант, так как большинство веб-серверов по умолчанию считают такое имя взаимозаменяемым с его версией в нижнем регистре. Хорошее замечание насчёт SEO — раньше я об этом не задумывался!

Для директорий это вопрос личных предпочтений (можно использовать и пробелы, хотя это не рекомендуется).
Однако в WordPress принято использовать дефисы.
Особенно потому, что WordPress действительно использует дефисы для специальных файлов.
Например, при создании шаблонов страниц можно создать файл с названием "page-special", и этот шаблон будет автоматически загружаться для страницы с именем "special" (например, website.com/special).

Да, я в курсе. Не уверен, относится ли это также к названиям директорий. Просто хочу убедиться, что не будет нежелательных побочных эффектов, если я так сделаю...

Тогда придерживайся дефисов. Если только у тебя нет конкретной причины делать иначе. Проще следовать устоявшемуся соглашению. Но если хочешь поэкспериментировать, обязательно используй локальный сервер. (Я только что попытался быстро переименовать основную директорию темы и получил большую ошибку.)

Оба варианта допустимы для названий папок. В большинстве примеров вы встретите дефисы, но я обнаружил, что некоторые генераторы используют подчеркивания из-за проблем с JavaScript и дефисами.
Это также обобщение, поскольку https://github.com/yeoman/generator-backbone/issues/2 придерживается дефисов.
