Skip to content

Latest commit

 

History

History
98 lines (63 loc) · 7.61 KB

wordpress.md

File metadata and controls

98 lines (63 loc) · 7.61 KB

Организация, нейминг файлов/папок темы

Разработка проекта на Wordpress ведется в кастомной теме или плагине. Стурктура темы должна соответствовать стартовой теме Syndicode. Тема и префиксы функций должны быть переименованы согласно названию проекта. Если название проекта имеет длинное именование, допускается использование сокращения или его абревиатуры.

Имена всех файлов в проекте отображать их суть. Если в названии используется 2 слова, они должны быть разделены символом «дефис».

Имена файлов темы должны соответсвовать названиям в иерархии темы Wordpress. Файлы темы должны располагаться в ее корне.

Исходные файлы стилей, javascript, изображений и шрифтов должны находится в папке /source. Конечные файлы для использования их в теме, должны находится в папке /assets. Перемещение происходит в автоматическом режиме при помощи менеджера задач gulp.

Файл functions.php не должен содержать определения функций или вспомагательный код, кроме подключения файлов относящихся к теме и объявления констант.

Файлы темы для удобства и структуризации могут быть разделены на части. Файлы с частям темы должны располагаться в папке /template-parts. Папка /template-parts может быть разбита на подпапки.

Кастомные шаблоны страниц, отдельные шаблоны должны располагаться в папке /templates.

Файлы не относящиеся к отображению контента, вспомогательные файлы должны располагаться в папке /inc.

Функции которые предназначены для общего функционирования темы должны располагаться в файле /inc/template-functions.php.

Регистрация кастомных типов записей и кастомных таксономий происходит путем добавления нового файла с объявлением в /inc/post-types и /inc/taxonomies соотвественно. Имена файлов кастомных типов и таксономий должны соответсвовать их названиям и быть объявленными в единственом числе.

Вспомогательные функции, которые относятся к отдельным логическим узлам, необходимо размещать в отдельных файлах в папке /utils. Подключение этих файлов должно происходить в файле /inc/utils.php.

При использовании вспомогательных библиотек/плагинов для создания кастомных мета полей, их объявления должны быть разделены по файлам, в зависимости от их назначения (страница, кастомный тип запси и т.д.). Файлы объявления кастомных мета полей должны быть расположены в одноименной с библиотекой/плагином подпапке в папке /inc. Пример: /inc/carbon-fields/page-home.php, /inc/acf/post-type-car.php. Файлы объявления кастомных мета полей подключаются в одноименном с библиотекой/плагином файле в папке /inc.

Имена файлов объявления кастомных мета полей, должны начинаться с сущности их предназначения. Например если поля объявляются к кастомному типу записи, то имя файла должны быть таким - post-type-event.php.

Общие требования к написанию кода

  1. Если позволяет окружение проекта, должна использоваться версия php 8.1 и выше.
  2. Необходимо стараться минимизировать использование стороннних плагинов.
  3. При определении функции ее имя должно начинаться с префикса, который равен имени темы или id плагина. При использовании стартовой темы, стандартные префиксы должны быть переименованы.

Пример ❌:

function get_custom_post_type_posts() {
  //...
}

Пример ✅:

function syndicode_get_custom_post_type_posts() {
  //...
}
  1. При создании кастомной таблицы в базе данных, ее имя должно начинаться с префикса, который используется в проекте по умолчанию.
  2. Имена переменных должны состоять только из строчных символов, слова разделяются символом «подчеркивание». Имя переменной должно отражать суть её содержимого. Недопустимо использовать сокращенные слова в именах переменных.

Пример ❌:

$item_v = 10;

Пример ✅:

$item_value = 10;
  1. В файлах php которые для вывода информации используют html, должен использоваться альтернативный синтаксис управляющих структур

Пример ✅:

<?php foreach($posts as $post) : ?>
  <li><?php echo $post->ID; ?></li>
<?php endforeach; ?>
  1. При определении функции, для аргументов функции должны быть объявлены их типы.

Пример ✅:

function syndicode_ucfirst(string $string): void {
  //...
}
  1. При определени фукнции должен быть объвлен тип возвращаемого значения.

Пример ✅:

function syndicode_ucfirst(string $string): string {

  return ucfirst( $string );
}
  1. Стили и скрипты должны подклбчаться только через хуки.
  2. Стили и скрипты для админ панели должны находиться в отдельных файлах и подклбючаться отдельно от основных файлов стилей и скриптов.