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

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

HIT

18.06.2019

2061

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

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

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

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.

[site-socialshare]
  • Похожие записи
  • Комментарии
  • Вложения
Фильтры Woocommerce

Фильтры Woocommerce

В базовую комплектацию Woocommerce входит набор виджетов для фильтрации товаров. Но данные виджеты необходимо несколько доработать. WooCommerce Навигация по слоям В этом виджете необходимо задать атрибут товара по которому будет Читать далее »

/ /
Сайтбар

Сайтбар

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

Виджеты

Виджеты

Виджеты — это модули с различным функционалом для добавления в специальную область sitebar. Одним из основных преимуществ данного решения является скорость и простота настройки. Виджет для изображения Если вставить изображение Читать далее »

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

Notice: Функция WP_Styles::add вызвана неправильно. Стиль с дескриптором "editor-buttons" был поставлен в очередь с незарегистрированными зависимостями: dashicons. Дополнительную информацию можно найти на странице «Отладка в WordPress». (Это сообщение было добавлено в версии 6.9.1.) in /home/t/tiberi6w/opttour.ru/public_html/wp-includes/functions.php on line 6260

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

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