我是WordPress的新手,我需要一个很大的帮助来理解动作是如何工作的。
看来指令之间有关系do_action
在get\\u xxx函数中,它后面的代码我不理解。例如,在以下函数中:
function get_header( $name = null ) {
do_action( \'get_header\', $name );
$templates = array();
$name = (string) $name;
if ( \'\' !== $name ) {
$templates[] = "header-{$name}.php"; // instruction 1
}
$templates[] = \'header.php\'; // instruction 2
locate_template( $templates, true );
}
有一个
do_action
在开始查找时
header.php
. 然后,一系列代码正在执行相同的操作,但可能会出现问题,因为变量的内容
$templates
“指令1”行中的始终被“指令2”行中的重写,因为它不是“if-then-else”。
在每个函数get\\u xxxx中,我们都有相同的结构。我想do_action
呼叫和随后的一系列代码,但我不明白。
如果有人能帮助我理解这个问题,我将非常感激。
SO网友:David Lee
这个do_action
:
do_action( \'get_header\', $name );
它触发了行动
get_header
, 因此,所有附加操作都使用
add_action
到行动
\'get_header\'
将被执行,其也将通过
$name
作为示例函数的参数:
function my_function($name){
echo "The Action sent me the name:".$name."!!";
}
add_action(\'get_header\', \'my_function\');
当
do_action( \'get_header\', $name );
已执行
my_function
将调用
$name
作为一个参数,通过这种方式,您可以在加载标题模板之前执行“操作”。
instruction 2
未覆盖instruction 1
添加默认值\'header.php\'
如果要调用自定义标头$templates
数组如下(使用get_header(\'custom\');
):
Array
(
[0] => header-custom.php
[1] => header.php
)
locate_template 将尝试查找并加载
require_once
第一个模板,如果它不存在或找不到,它将回退到
header.php
试着把那个也装进去。