Intereting Posts
Показать цену с местоположением Geo IP Конфликт checkbox на моей пользовательской странице настроек плагина $ wpdb-> обновить запрос, увеличивая значение на своем собственном! Использовать только аутентификацию WordPress цикл не отображает сообщения на странице пользовательских шаблонов Как связать носители с сообщением? Скрыть панель администратора администратора, включая интервал 32 px Массовая замена содержимого нескольких страниц / сообщений? Функция WordPress, например, is_category для подкатегории? is_subcategory? Как удалить дату, автора и комментарий с страницы результатов поиска Chameleon Отключить «предыдущую ссылку» в первом сообщении и «следующую ссылку» в последнем сообщении Нужны ли опции виджета, чтобы избежать экранов ()? Расширение локализации wordpress создать шаблон для одной страницы Перенаправление или отображение сообщения при первом входе в систему

Использовать add_action в шаблоне

У меня есть следующие функции functions.php. Можно ли загружать их только на определенные пользовательские типы сообщений? (У меня есть несколько пользовательских типов сообщений, которые все используют определенную часть шаблона -> можно ли добавить туда функции?) Или можно использовать add_action только с функциями. Php?

add_action( 'get_header', 'tsm_do_logged_in_author_checks' ); function tsm_do_logged_in_author_checks() { // Get current user info global $post,$current_user; get_currentuserinfo(); // Bail if user is not logged in and not post author if (// ! ( is_user_logged_in() && $current_user->ID == $post->post_author ) is_admin()) { return; } add_action( 'wp_enqueue_scripts', 'tsm_acf_form_edit_post_enqueue_scripts' ); add_action( 'get_header', 'tsm_do_acf_form_head', 1 ); add_action( 'wp_print_styles', 'tsm_deregister_admin_styles', 999 ); add_action( 'loop_start', 'tsm_do_acf_form_edit_toggle', 5 ); add_action( 'loop_end', 'tsm_do_acf_form_content' ); add_filter( 'acf/load_value/key=field_54dfc93e35ec4', 'tsm_load_post_title', 10, 3 ); function tsm_acf_form_edit_post_enqueue_scripts() { wp_enqueue_script( 'sidr', get_stylesheet_directory_uri() . '/assets/js/jquery.sidr.min.js', array( 'jquery' ), '1.2.1', true ); wp_enqueue_script( 'edit-post', get_stylesheet_directory_uri() . '/assets/js/edit-post.js', array( 'sidr' ), '1.0.0', true ); } function tsm_do_acf_form_head() { acf_form_head(); } function tsm_deregister_admin_styles() { wp_deregister_style( 'wp-admin' ); } etc etc... 

Нет ограничений на использование add_action() , за исключением того, что ядро ​​должно загрузить его уже. Практически это означает почти везде, но wp-config.php .

Хотя это можно сделать в шаблоне, это не обычная практика из-за:

  1. Проблемы с синхронизацией (ваша часть шаблона может быть загружена после необходимых вам крючков).
  2. Ясность кода основы (было бы трудно найти кого-то другого и понять, как все это распространяется).

Типичная практика заключается в следующем:

  1. Создание промежуточной функции.
  2. Подцепите его до подходящего крючка (достаточно поздно для работы, а не слишком поздно), это часто init , admin_init или template_redirect .
  3. Проверьте текущий контекст с условными функциями и на совпадениях перехватите остальные функции по мере необходимости.

Этот подход упрощает и упрощает разработку и изменение поведения разработчиков. 3.