Parece-me que ambos oferecem a oportunidade para o usuário final modificar um tema sem realmente editar os arquivos de temas (via temas filhos).
Minha pergunta é: é um método preferido em relação ao outro.
Por exemplo, pegue um tema em que estou trabalhando agora. Estou tentando decidir se deve ir com partes do modelo de ganchos.
<?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' ); ?>
O item acima permite que o usuário do tema substitua qualquer seção do código existente, simplesmente criando um arquivo com nome apropriado na pasta do tema filho, além de adicionar um novo código antes / depois de cada seção pré-existente pelo mesmo método - o modelo antes / depois os arquivos de peça não existem no tema pai e existem apenas para permitir a inserção de código - e esse método não exige que eles entendam ganchos / filtros para fazer isso.
É claro que eu poderia conseguir o mesmo usando ganchos e filtros.
Existe uma vantagem em usar ganchos / filtros? Tendo em mente que o público-alvo que usará isso não é decididamente esclarecido por código. Posso dar-lhes instruções relativamente básicas que podem seguir para usar o método de modelo, mas quase certamente confundirei o diabo com ganchos.
Ou há situações em que uma seria melhor que a outra dentro do mesmo tema?