Russian (Pусский) translation by Narine Hovhannisyan (you can also view the original English article)
В этом уроке вы будете добавлять действия в ваши файлы шаблонов, к которым в следующем уроке вы прикрепите функции. После этого вы добавите некоторые фильтры.
Преимуществом создания действий в вашем фреймворке является то, что любой контент, который вы прикрепите к ним, может быть очень легко изменен с помощью функций в вашей дочерней теме или плагинами. Это избавит вас от создания дублировааных файлов шаблонов в вашей дочерней теме и даст вам больше гибкости.
Заметка: Если, прежде чем приступить, вам необходимо узнать больше о действиях и фильтрах, то этот урок вам поможет.
Что Вам Понадобится
Для этого урока вам понадобится:
- установленный для разработки WordPress
- ваша собственная тема или файлы темы из Части 3 этой серии уроков, которые вы можете найти на репозитории GitHub для сопровождения этих уроков
- кодовый редактор
Добавление Хуков в Header
Мы собираемся добавить два хука в header: один до него и один внутри.
В header.php
, непосредсвенно внутри открытого тега <body>
, добавьте первое действие:
<?php // action hook for any content placed before the header, including the widget area do_action ( 'wptp_before_header' ); ?>
Этот хук может быть полезен для добавления контента, меню или ссылок над header сайта.
Добавьте другой хук внутри header, справа. Ваши дочерние темы могут использовать его для добавления пользовательского контента, формы для поска или виджетов.
<div class="half right"> <!-- This area is by default in the top right of the header. It contains contact details and is also where you might add social media or RSS links --> <?php // action hook for any content placed inside the right hand header, including the widget area. do_action ( 'wptp_in_header' ); ?> </div> <!-- .half right -->
Заметьте, что я заключила этот хук внутрь div
с парой классов, которые будут работать с объектно-ориентировааным стилем в моей теме - если вы работаете с вашей собственной темой, вам нужно будет использовать что-то другое, но сам хук будет тем же.
Добавление Хуков Контенту
Тема будет включать два контентных хука - один до цикла и открывающийся после него, оба внутри #content div
. К счастью, из-зи того, как моя тема устроена, я должна добавить каждый хук один раз, я открываю этот div в файле header.php
и закрываю его в sidebar.php
и page-full-width.php
файле - он добавлен к шаблону страницы в полную ширину, потому что это не дает запрос на боковую панель.
Начнем с того, который находится до цикла.
В конце header.php
, добавьте следующее непосредственно в открывающийся #content
div:
<?php // action hook for any content placed before the content, including the widget area do_action ( 'wptp_before_content' ); ?>
Это обеспечит хук для всего, что находится внутри контента, но над циклом.
Дальше, в sidebar.php
, сразу до закрытия #content
div, добавьте этот код:
<?php // action hook for any content placed after the content, including the widget area do_action ( 'wptp_after_content' ); ?>
Наконец, добавьте тот же код в шаблон page-full-width.php
так же, как вы это сделали в sidebar.php
, опять же до закрытия #content
div.
Добавление Хуков к Боковой Панели
Соедующим шагом является замена виджет зоны в боковой панели на хук, который далее будет использован для добавления виджет зоны обратно, но может также быть использован для добавления пользовательского кода или изменения виджет зоны.
Замените весь код для виджет зоны на новый хук:
<?php // action hook for any content placed in the sidebar, including the widget area do_action ( 'wptp_sidebar' ); ?>
Это означает, что если вы захотите заменить виджет зону на ваш собственный код в плагине или дочерней теме, вы сможете это сделать с помощью прикрепления нового кода к этому хуку и корректирования хука, который прикрепляет виджет зону.
Добавление Хуков к Footer
Наконец, вам нужно добавить пару хуков к footer: один внутри него и один под ним, которые будут использованы для колофона.
Внутри элемента footer
поменяйте весь код на хук:
<?php // action hook for any content placed before the content, including the widget area do_action ( 'wptp_footer' ); ?>
Дальше, добавьте другой хук для колофона, после закрытия элемента footer
:
<?php // action hook for any content placed before the content, including the widget area do_action ( 'wptp_after_footer' ); ?>
Заметка: Код, который вы удалили для виджет зоны и колофона, будет заменен позже, но вместо добавления его прямиком к файлам шаблона, он будет добавлен, используя функцию, которая активируется с помощью соответсвующего хука. Мы также добавим фильтры к некоторым из этих функций.
Заключение
Использование хуков в ваших файлах шаблонов даст вам и пользователям вашего фреймворка больше гибкости. Вы сможете использовать их где угодно для внесения любого вида контента и для изменения или удаления контента, все это без создания новых файлов шаблонов.
В следующем уроке этой серии я покажу вам как создать функции, которые добавят виджет зоны и другой контент, все активирующиеся с помощью этих хуков.
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Update me weeklyEnvato Tuts+ tutorials are translated into other languages by our community members—you can be involved too!
Translate this post