在设置主题时,我希望能够预先填充get\\u tempate\\u part$args的所有事件。
get_template_part( string $slug, string $name = null, array *$args* = array() )
在get_template_part
功能和内部locate_template
它也由get\\u template\\u part、get\\u header、get\\u footer等调用,但不应用任何筛选器。我能做的最好的事情就是修改我的主题调用的每个实例,以获得\\u template\\u part,如下所示:<?php get_template_part( \'views/loop\', \'index\', apply_filters( \'filter_template_part_args\', [], \'loop\' ) ); ?>
并运行自定义筛选器,如下所示:add_filter( \'filter_template_part_args\', function( $args, $slug, $name = \'\' ) {
$defaults = [
\'id\' => esc_attr( basename( $slug ) ),
\'tag\' => \'div\',
\'class\' => \'\',
\'container\' => \'container\',
\'row\' => \'row\',
];
return \\wp_parse_args( $args, $defaults );
;
});上述函数的变通方法(虽然维护工作量很大)适用于在主题中进行的各个teamplate\\u部分调用,但对于来自wordpress默认值(get\\u footer、get\\u header等)的现有调用失败
我是否遗漏了一些关键信息?是的,get\\u header()除了一个$args参数外,其他都会出现,但我的主题很快就被多个代码块填满了,这使得扩展性很痛苦,而且非常不干燥