WordPress одна из популярных CMS не только среди пользователей, но и среди разработчиков. А знаете почему? Потому что она удобная и очень гибкая. Ее удобность заключается в реализованной системе хуков. Как вы теперь поняли, в этой статье речь пойдет о хуках WordPress.
Содержание
- 1. Что такое хуки WordPress.
- 2. Отключение ненужных виджетов.
- 3. Изменение количество записей на странице поиска.
- 4. Переопределение шаблона для произвольного типа записей.
- 5. Автоматическое добавление содержимого в конце каждой статьи.
- 6. Автоматический копирайт в подвале сайта.
1. Что такое хуки WordPress.
Давайте разберемся, что понимается под словом хук (hook). Хуками в WordPress называются фильтры (filter) и события (action). По сути это одно и тоже. Разница заключается в том, что filter возвращает значение, а action срабатывает в процессе события и ничего не возвращают. А если простым языком, у функции или метода в коде есть такое место, за которое мы можем зацепиться и подставить свою функцию или значение. От сюда и происходит название hook - крюк, крючок.
Что бы оценить все удобство хуков WordPress, разберем 5 полезных примеров.
2. Отключение ненужных виджетов.
Порой мы не используем все виджеты и не нужные можно отключить, используя хук widgets_init.
add_action('widgets_init', 'unregister_basic_widgets'); function unregister_basic_widgets() { unregister_widget('WP_Widget_Pages'); // Виджет страниц unregister_widget('WP_Widget_Calendar'); // Календарь unregister_widget('WP_Widget_Archives'); // Архивы unregister_widget('WP_Widget_Meta'); // Мета виджет unregister_widget('WP_Widget_Search'); // Поиск unregister_widget('WP_Widget_Text'); // Текст unregister_widget('WP_Widget_Recent_Posts'); // Последние записи unregister_widget('WP_Widget_RSS'); // RSS unregister_widget('WP_Widget_Tag_Cloud'); // Облако меток }
3. Изменение количество записей на странице поиска.
По умолчанию количество записей на странице поиска, точно такое же как и на странице блога. При желании его можно изменить через хук pre_get_posts.
add_action('pre_get_posts', 'search_results_per_page'); function search_results_per_page( $query ) { if( ! is_admin() && $query->is_main_query() && $query->is_search() ){ $query->set( 'posts_per_page', 100 ); } return $query; }
4. Переопределение шаблона для произвольного типа записей.
Иногда после создания произвольного типа записи (custom post type) нужно использовать произвольный шаблон. С помощью хука template_include можно переопределить шаблон на свой, вместо single.php
add_filter( 'template_include', 'custom_post_type_page_template', 99 ); function custom_post_type_page_template($template) { $id = get_the_ID(); $post_type = get_post_type($id); if($post_type == 'custom_post_type' && is_single()){ $template = locate_template(array('custom-post-type-template.php')); } return $template; }
5. Автоматическое добавление содержимого в конце каждой статьи.
Очень полезный хук the_content, с его помощью можно производить манипуляции с контентом поста. В данном случае, мы прикрепляем в конец поста произвольный текст.
add_filter ('the_content', 'post_footer'); function post_footer($content) { if(is_single()) { $content .= 'Автор сайта: Василий'; } return $content; }
6. Автоматический копирайт в подвале сайта.
Тоже самое мы можем делать и с подвалом сайта через хук wp_footer. К примеру можно добавить копирайт, если его нет.
add_filter ('wp_footer', 'footer_copyright'); function footer_copyright($content){ $content .= '© 2018-'.date('Y').''; return $content; }
Код из примеров нужно вставлять в functions.php вашей темы.
Комментариев (0)