Intereting Posts
Как добавить внешнюю php-страницу с помощью WordPress? add_action не вызывает функцию Как изменить существующее мета-описание? Где вставить код API Карт Google в functions.php Изменить slug стандартной категории wp Post Страница сообщений WordPress для фильтрации и сортировки клиентов вместе с фильтром категории has_children в пользовательском nav_walker CSS не отображается в сообщении, а просто отображается как текст Просмотр одиночных страниц и разбиение на страницы в зависимости от URL-запроса Как изменить поле в базе данных через кнопку отправки или флажок? Как подключить пользовательские таксономии к пользовательским типам сообщений и заставить постоянные ссылки работать? WordPress показывает ссылку для регистрации для не зарегистрированных пользователей WordPress Страницы «разрешить комментарии» мета-опция не может быть проверена Блокировать полную страницу с паролем не только области содержимого Шаблон WordPress 3.3.1 не отображается в области администратора

Есть ли параметр get_xxxx в файле general_template.php?

Я новичок в WordPress, и мне нужна большая помощь, чтобы понять, как работает действие действия.

Кажется, существует связь между инструкцией do_action и кодом, который следует за ней в функции get_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», потому что это не a "if then else".

В каждой функции get_xxxx мы имеем ту же структуру. Я предполагаю, что существует связь между вызовом do_action и последовательностью последующих кодов, но я не понимаю.

Буду очень признателен, если кто-нибудь поможет мне понять эту проблему.

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 и попытаться загрузить его тоже.