Loading
0

WordPress 5.5+模板功能可将参数传递给模板文件

主题开发人员希望将数据传递到模板文件,但是没有什么理想的解决方法,包括使用全局变量、 set_query_var()、include( locate_template() ) 模型或自己版本的 get_template_part()等等。接下来WordPress 5.5+模板功能可将参数传递给模板文件。

WordPress 5.5+模板功能可将参数传递给模板文件

受影响的函数

get_header()

get_footer()

get_sidebar()

get_template_part()

locate_template()

load_template()

为了提供适当的上下文,相关的动作挂钩也已更新为传递此新$args参数。

get_header

get_footer

get_sidebar

get_template_part_{$slug}

get_template_part

注意: get_search_form() 从[44956]开始,已经接受并将其他参数传递给搜索表单模板。但是,该$args参数是在与上述挂钩同时添加的。它们是:

pre_get_search_form (行动)

search_form_format(过滤)

get_search_form (过滤)

示例

<?php

get_template_part(

'foo',

null,

array(

'class' => 'user',

'arbitrary_data' => array(

'foo' => 'baz',

'bar' => true,

),

...

)

);

在上面的示例中,可以通过本地范围的 $args 变量在模板 foo.php 内访问get_template_part()通过$args变量传递的其他数据。

<?php

// Example foo.php template.

// Set defaults.

$args = wp_parse_args(

$args,

array(

'class' => '',

'arbitrary_data' => array(

'foo' => 'fooval',

'bar' => false,

),

...

)

);

?>

<div class="widget <?php echo esc_html_class( $args['class'] ); ?>">

<?php echo esc_html( $args['arbitrary_data']['foo'] ); ?>

</div>

注意:使用此新功能时,任何当前包含$args变量的模板文件都应注意。对已加载的模板文件的$args任何修改将覆盖使用上述函数传递的所有值。