Мне кажется, что оба они предоставляют конечному пользователю возможность изменить тему без фактического редактирования файлов тем (через дочерние темы).
Мой вопрос, является ли один метод предпочтительнее другого.
Например, возьмите тему, над которой я сейчас работаю. Я пытаюсь решить, идти ли с шаблонными частями крючков.
<?php get_template_part('before_sitecontainer' ); ?>
<div id="sitecontainer" class="sitecontainer" <?php //closed in footer ?>>
<?php get_template_part( 'before_topcontainer' ); ?>
<div id="topcontainer ">
<?php get_template_part( 'before_topedge_navigation' ); ?>
<?php get_template_part( 'topedge_navigation' ); ?>
<?php get_template_part( 'before_site_header' ); ?>
<?php get_template_part( 'site_header' ); ?>
<?php get_template_part( 'before_second_navigation' ); ?>
<?php get_template_part( 'second_navigation' ); ?>
<?php get_template_part( 'after_second_navigation' ); ?>
</div><!-- end topcontainer div -->
<?php get_template_part( 'after_topcontainer' ); ?>
Вышеупомянутое позволяет пользователю темы заменить любой раздел существующего кода, просто создав файл с подходящим именем в своей дочерней папке темы, а также добавив новый код до / после каждого предварительно существующего раздела тем же методом - шаблон до / после файлы деталей вообще не существуют в родительской теме и позволяют просто вставлять код - и этот метод не требует от них понимания хуков / фильтров для достижения этой цели.
Конечно, я могу добиться того же, используя крючки и фильтры.
Есть ли преимущество использования хуков / фильтров? Принимая во внимание, что целевая аудитория, которая будет использовать это, определенно не разбирается в коде. Я могу дать им относительно простую инструкцию, которой они могут следовать, чтобы использовать метод шаблона, но почти наверняка спутает дьявола из них с крючками.
Или есть ситуации, когда один будет лучше, чем другой в той же теме?