Публикация в группе: Полезное для WordPress

Категории группы: Полезное

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 вашей темы.

5

Автор публикации

не в сети 2 месяца

spoot@bk.ru

84
Комментарии: 54Публикации: 26Регистрация: 09-03-2016Продаж/Покупок: 0/0