Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress

Создание начальных файлов для вашего WordPress фреймворка

by
Difficulty:IntermediateLength:ShortLanguages:
This post is part of a series called How Theme Frameworks Actually Work.
Deciding How to Develop Your WordPress Theme Framework
Creating the Starting Files for Your WordPress Theme Framework

Russian (Pусский) translation by Igor Podgarov (you can also view the original English article)

В ранних частях этой серии, вы узнали как фреймворки работают и рассмотрели подходы для разработки вашего собственного.

Сейчас самое время окунуться в код!

В этом руководстве, вы овладеете основами создания базовой темы и редактирования файлов шаблона, таким образом, чтобы они были готовы для добавления хуков и функций в ваш фреймворк. Цель этого урока - привести в порядок тему так, чтобы код не дублировался, а значит, вы будете создавать дополнительные файлы для циклов.

Это значит, что вы не будете создавать дублирующие циклы в вашей дочерней теме, при создании новых файлов шаблонов, и если вам нужно редактировать цикл, то сделать это, только один раз.

Заметьте: начальные файлы основаны на теме, которую я сделала для моей серии создание WordPress темы из HTML, с несколькими изменениями. Вы можете скачать их с GitHub репозитория, сопровождающего эту серию.

Что вам понадобиться

Следуя этому руководству, вам понадобиться:

  • установленный WordPress
  • ваша начальная тема или файлы начальной темы из GitHub репозитория, созданные, для этой серии
  • текстовый редактор

Создаем файлы циклов

Для моего фреймворка я собираюсь создать три цикла:

  • один для архива контента (включая страницу блога)
  • один для отдельного поста
  • один для страниц

Это все потому, что я хочу, чтобы каждый из них отображался немного по другому.

Даже несмотря на то, что у нас будет три цикла, это все равно будет более эффективно, чем добавлять по одному циклу в каждый файл шаблона в вашем фреймворке.

Основной цикл

Основной цикл будет для архива и для основной странице блога. В папке вашей темы, создайте файл с названием loop.php.

Скопируйте в него из файла archive.php следующие строки:

Нам не нужно, чтобы отображался заголовок на главной странице блога, поэтому добавьте условие вокруг первого цикла, чтобы проверить, что мы не на этой странице:

Первый цикл сейчас будет выглядеть так:

Сейчас вам нужно добавить этот цикл в соответствующие файлы шаблона. В archive.php и index.php, замените существующий цикл на функцию get_template_part() , которая вставляет ваш, только что, созданный файл в нужное место:

Теперь у вас есть работающий файл для архивов.

Страничный цикл

Следующее что вам нужно, это создать файл для страниц. Назовите его loop-page.php.

Скопируйте из, уже существующего, файла page.php этот код:

Сейчас во всех ваших шаблонах страниц (page.php и page-full-width.php), замените существующий цикл на:

Цикл Отдельного Сообщения

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

Создайте два файла с названием loop-single.php и single.php.

Скопируйте содержимое из index.php в single.php, отредактируйте комментарии в начале файла и вызовите цикл, который выглядит так::

Потом в файл single-loop.php, скопируйте код из loop.php, не добавляя первый цикл, который проверяет данные архива. Отредактируйте заголовок, чтобы не было ссылки, вот код:

Сохраните эти два файла. Сейчас все ваши файлы циклов готовы.

Итог

Чистка темы и сокращение дублируемого кода, перед использованием его, как основы для фреймворка, в конечном счете, сэкономит ваше время.

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

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.