/ Сайтостроение / Wordpress / Создание виджета WP

Создание виджета WP

18.06.2019

38

Создадим собственный виджет и разберемся в особенностях конструкции и функций при создании виджета.

Стандартные блоки при создании виджета

Создаем класс

class related_posts_widget extends WP_Widget {
}

Внутри этого класса прописываем следующие блоки:

Регистрация виджета:

function __construct() {
	parent::__construct(
		'related_posts_widget', // widget ID
		__('Похожие записи', ' hstngr_widget_domain'), // widget name
		array( 'description' => __( 'Выводим похожие записи по тэгу', 'hstngr_widget_domain' ), ) // widget description
	);
}

Вывод виджета (то что идет во фронтенд):

public function widget( $args, $instance ) {
	$title = apply_filters( 'widget_title', $instance['title'] );
	if ( !empty( $title ) ) {
		echo $args['before_widget'];
		echo $args['before_title'] . $title . $args['after_title'];
		echo __( 'Привет мир, это виджет похожих записей', 'hstngr_widget_domain' );
		echo $args['after_widget'];
	}
}

Управление виджетом (то что мы видим в админке):

public function form( $instance ) {
	if ( isset( $instance[ 'title' ] ) ) $title = $instance[ 'title' ];
	else $title = __( 'Похожие записи', 'hstngr_widget_domain' );
	?>
	<p>
	<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
	<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
	</p>
	<?php
}

Обновление виджета (при внесении изменений):

public function update( $new_instance, $old_instance ) {
	$instance = array();
	$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
	return $instance;
}

Далее, уже после созданного класса добавляем функцию активации виджета:

function related_posts_register_widget() { register_widget( 'related_posts_widget' ); }
add_action( 'widgets_init', 'related_posts_register_widget' );

Всю эту конструкцию рекомендуется поместить в плагин.

Стили CSS виджета необходимо подключать отдельными стандартными для этого средствами WP.

Тэги:

Поделится информацией с друзьями

  • Похожие записи
  • Комментарии
  • Вложения
Сайтбар

Сайтбар

Вспомогательная панель или сайтбар довольно удобная штука. В нее мы можем поместить множество необходимых модулей и виджетов по функционалу сайта: от формы поиска до ленты Instagram. Сайтбар размещен справа либо Читать далее »

Виджет подкатегорий

Виджет подкатегорий

Реализация виджета текущих подкатегорий и если есть родительская категория выводить и ее с отдельным стилем. Неплохое решение для навигации: в этом случае целесообразно в основном блоке выводить все записи категории Читать далее »

Виджет последних записей

Виджет последних записей

Создаем виджет последних записей, с миниатюрами. Вставить в текстовый виджет, posts_per_page — количество, category — если убрать, то будут все рубрики. Можно добавлять и другие параметры запроса. <ul class="lastpostvidget"> <?php Читать далее »

Добавить комментарий

Пока нет комментариев. Будь первым!

Создание виджета WP
Миниатюра — фон сайта
Рекомендации для васМиниатюра — фон сайтаOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.