the_widget() WP 2.8.0

Виводить цей віджет за межами сайдбара. Можна використовувати у будь-якому місці шаблону.

Хуки з функції

Повертає

null. Нічого. Виводить на екран HTML код віджету.

Використання

the_widget($widget, $instance, $args);
$widget
(рядок) (обов’язковий)

Назва PHP класу, що відповідає за віджет. див. /wp-includes/default-widgets.php .

Віджети з коробки:

WP_Widget_Pages
WP_Widget_Links
WP_Widget_Search
WP_Widget_Archives
WP_Widget_Media
WP_Widget_Media_Audio
WP_Widget_Media_Image
WP_Widget_Media_Video
WP_Widget_Media_Gallery
WP_Widget_Meta
WP_Widget_Calendar
WP_Widget_Text
WP_Widget_Categories
WP_Widget_Recent_Posts
WP_Widget_Recent_Comments
WP_Widget_RSS
WP_Widget_Tag_Cloud
WP_Nav_Menu_Widget
WP_Widget_Custom_HTML
WP_Widget_Block

Детальний опис кожного віджету дивіться нижче.

$instance
(масив/рядок)

Параметри віджету (налаштування екземпляра класу).

Можна вказати: масив array('dropdown'=>'1')чи рядок запиту: 'dropdown=1&count=1'.

Які параметри у кожного віджету дивіться нижче. Або зайдіть в адмінку WP Внешний вид > Виджеты, активуйте потрібний віджет і подивіться, які у нього є параметри. Щоб дізнатися конкретну назву параметра, дивіться останнє значення атрибута name у поля віджету, наприклад у віджету «хмара міток» поле «заголовок» дорівнює name="widget-tag_cloud[2][title]"– значить, налаштування буде – title.

oblako

За замовчуванням: array()

$args
(масив)

Масив параметрів для зміни відображення віджету. Може бути:

  • before_widget (рядок)
    HTML який буде доданий перед кодом віджету.
    За промовчанням: <div class=”widget %s”> , де віджета %s class.

  • after_widget (рядок)
    HTML який буде додано після коду віджету.
    За замовчуванням: </div>

  • before_title (рядок)
    HTML який буде доданий перед кодом заголовка віджету.
    За замовчуванням: <h2 class=”widgettitle”>

  • after_title (рядок)
    HTML який буде додано після коду заголовка віджету.
    За замовчуванням: </h2>

За замовчуванням: array()

Приклади

0

#1 Демо

Показати віджет за замовчуванням:

<?php the_widget( 'WP_Widget_Categories'); ?>

Показати віджет з налаштуваннями:

<?php the_widget( 'WP_Widget_Categories', 'dropdown=1&count=1' ); ?>

Показати віджет з параметрами користувача:

<?php
$instance = array(
	'dropdown' => 1,
	'count' => 1,
);

$ args = array (
	'before_widget' => '<div id="%1$s" class="widget %2$s">',
	'after_widget' => '</div>',
	'before_title' => '<div class="widget-title">',
	'after_title' => '</div>'
);

the_widget( 'WP_Widget_Categories', $instance, $args);
?>

Базові віджети WordPress


WP_Widget_Archives – архіви

the_widget( 'WP_Widget_Archives', $instance, $args);

Параметри віджету – можливі поля $instance :

title
(рядок)
Заголовок віджету.


Типово: __(‘Archives’)
count
(число)
Скільки постів кожного архіву виводити. Параметр
show_post_count для
wp_get_archives() .


За замовчуванням: 0 (заховати)
dropdown
(логічний)
1 – як список, що видає. 0 – як ul список.


Типово: 0 (ul список)

Приклади:

Базовий висновок:

<?php the_widget( 'WP_Widget_Archives' ); ?>

Випадаючий список:

<?php the_widget( 'WP_Widget_Archives', 'dropdown=1' ); ?>


WP_Widget_Calendar – календар

<?php the_widget( 'WP_Widget_Calendar', $instance, $args ); ?>

Параметри віджету – можливі поля $instance :

title
(рядок)
Заголовок віджету


Типово: ”

Приклади:

<?php the_widget( 'WP_Widget_Calendar'); ?>


WP_Widget_Categories – рубрики

<?php the_widget( 'WP_Widget_Categories', $instance, $args ); ?>

Параметри віджету – можливі поля $instance :

title
(рядок)
Заголовок віджету.


Типово: __( ‘Categories’ )
count
(число)
Кількість постів у кожній категорії. Параметр
show_countу функціях:
wp_dropdown_categories() або
wp_list_categories() .


За замовчуванням: 0 (заховати)
hierarchical
(логічний)
1 – Деревоподібний висновок: дочірні та батьківські рубрики. 0 – один рівень для всіх.


За замовчуванням: 0 (суцільний висновок)
dropdown
(логічний)
1 – як список, що видає. 0 – як ul список.


Типово: 0 (гд список)

Приклади:

Базове використання:

<?php the_widget('WP_Widget_Categories'); ?>

Список, що випадає, з кількість записів у рубриках:

<?php the_widget( 'WP_Widget_Categories', 'dropdown=1&count=1' ); ?>


WP_Widget_Meta – вхід/вихід та мета дані

Виводить корисні посилання: вхід/вихід, адмінка, фіди, WordPress посилання.

<?php the_widget( 'WP_Widget_Meta', $instance, $args ); ?>

Параметри віджету – можливі поля $instance :

title
(рядок)
Заголовок віджету.


Типово: __(‘Meta’)

Приклади:

Виведемо віджет:

<?php the_widget( 'WP_Widget_Meta'); ?>


WP_Widget_Pages – постійні сторінки

Виводить список сторінок.

<?php the_widget( 'WP_Widget_Pages', $instance, $args ); ?>

Параметри віджету – можливі поля $instance :

title
(рядок)
Заголовок віджету.


Типово: __(‘Pages’)
sortby
(рядок)
Колонка для сортування Параметр
sort_column функції
wp_list_pages() .


За замовчуванням: ‘menu_order’
exclude
(рядок/масив)
ID записів, які потрібно виключити зі списку. Через кому або в масиві.


За замовчуванням: ”

Приклади:

Виведемо список сторінок:

<?php the_widget( 'WP_Widget_Pages'); ?>

Обернемо заголовок віджету в h3 тег і відсортуємо сторінки за датою зміни:

<?php the_widget('WP_Widget_Pages', 'title=Змінені сторінки&sortby=post_modified', 'before_title=<h3>&after_title=</h3>'); ?>


WP_Widget_Recent_Comments – останні коментарі

<?php the_widget( 'WP_Widget_Recent_Comments', $instance, $args ); ?>

Параметри віджету – можливі поля $instance :

title
(рядок)
Заголовок віджету.


Типово: __(‘Recent Comments’)
number
(число)
Число коментарів для виведення. Максимум 15.


Типово: 5

Приклади:

Виведемо останні коментарі:

<?php the_widget( 'WP_Widget_Recent_Comments' ); ?>


WP_Widget_Recent_Posts – останні записи

<?php the_widget( 'WP_Widget_Recent_Posts', $instance, $args ); ?>

Параметри віджету – можливі поля $instance :

title
(рядок)
Заголовок віджету.


Типово: __(‘Recent Posts’)
number
(число)
Число записів для виведення. Максимум 15.


Типово: 5

Приклади:

Виведемо останні записи:

<?php the_widget( 'WP_Widget_Recent_Posts'); ?>


WP_Widget_RSS – RSS

Виводить список елементів за вказаним УРЛ на RSS або Атом виду.

<?php the_widget( 'WP_Widget_RSS', $instance, $args ); ?>

Параметри віджету – можливі поля $instance :

title
(рядок)
Заголовок віджету.


За замовчуванням: береться із зазначеного УРЛ
url
(рядок) (обов’язковий)
УРЛ на RSS або Атом фід.
items
(число)
Кількість посилань, що виводяться.


За замовчуванням: все з фіда
show_summary
(логічний)
Чи виводити короткий опис під посиланнями?


Типово: false
show_author
(логічний)
Чи виводити автора посту?


Типово: false
show_date
(логічний)
Чи виводити дату публікації?


Типово: false

Приклади:

Виведемо записи цього сайту:

the_widget( 'WP_Widget_RSS', array(
	'feed' => 'http://wp-kama.ru/feed',
	'items' => 5,
	'show_summary' => true
)));


WP_Widget_Search – пошук

<?php the_widget( 'WP_Widget_Search', $instance, $args ); ?>

Параметри віджету – можливі поля $instance :

title
(рядок)
Заголовок форми пошуку.


Типово: null

Приклади:

Виведемо форму пошуку:

<?php the_widget( 'WP_Widget_Search'); ?>


WP_Widget_Tag_Cloud – хмара міток

<?php the_widget( 'WP_Widget_Tag_Cloud', $instance, $args ); ?>

Параметри віджету – можливі поля $instance :

title
(рядок)
Заголовок віджету.


Типово: __(‘Tags’)
taxonomy
(рядок)
Назва таксономії з елементів якої буде побудована хмара.


Типово: post_tag

Приклади:

Виведемо хмару міток:

<?php the_widget('WP_Widget_Tag_Cloud'); ?>


WP_Widget_Text – довільний текст

Виводить будь-який текст. У тексті можна використовувати теги HTML.

<?php the_widget( 'WP_Widget_Text', $instance, $args ); ?>

Параметри віджету – можливі поля $instance :

title
(рядок)
Заголовок віджету.


Типово: null (без заголовка)
text
(рядок)
Текст, який потрібно вивести у віджеті. Можна використовувати теги HTML.


За замовчуванням: ”
filter
(рядок)
Якщо вказати, висновок буде оброблено функцією
wpautop() .


За замовчуванням: ”

Приклади:

Виведемо довільний текст:

the_widget( 'WP_Widget_Text', 'title=Мій текст &text=Сам <b>текст</b>' );

/* Виведе на екран:
<div class="widget widget_text">
	<h2 class="widgettitle">Мій текст </h2>
	<div class="textwidget">Сам <b>текст</b></div>
</div>
*/

Виводить посилання із вказаного меню. Враховує вкладеність та порядок елементів.

<?php the_widget( 'WP_Nav_Menu_Widget', $instance, $args ); ?>

Параметри віджету – можливі поля $instance :

title
(рядок)
Заголовок віджету.


Типово: null
nav_menu
(рядок/число) (обов’язковий)
ID меню, яке потрібно вивести. ID меню можна дізнатися в адмінці, в налаштуваннях меню – дивимося в УРЛ (там ID видно) або беремо саму назву меню як ID.

Приклади:

Виведемо меню 2 та “Моє меню”:

the_widget( 'WP_Nav_Menu_Widget', array('nav_menu' => 2) );

the_widget( 'WP_Nav_Menu_Widget', array('nav_menu' => 'Моє меню') );

Для виведення меню WordPress є спеціальна функція: wp_nav_menu()


Довільний віджет

Виведення будь-якого віджету. Нехай клас називається “My_Custom_Widget”.

<?php the_widget( 'My_Custom_Widget', $instance, $args ); ?>
  • Назва класу:WIDGET CLASS NAME

  • Параметри (налаштування): довільно

  • Аргументи: довільно

Приклади:

Віджет реєструється у коді так. Докладніше про реєстрацію віджету дивіться в прикладах register_widget() :

class My_Custom_Widget extends WP_Widget{
	// your code
}

А потім виводитися так:

<?php the_widget( 'My_Custom_Widget', $instance, $args ); ?>

нотатки

  • Global. WP_Widget_Factory. $wp_widget_factory

список змін

З версії 2.8.0Введено.

the widget WP 6.0.2

function the_widget( $widget, $instance = array(), $args = array() ) {
	Global $wp_widget_factory;

	if ( ! isset( $wp_widget_factory->widgets[ $widget ] ) ) {
		_doing_it_wrong(
			__FUNCTION__,
			sprintf(
				/* translators: %s: register_widget() */
				__( 'Widgets need to be registered using %s, before they can be displayed.' ),
				'<code>register_widget()</code>'
			),
			'4.9.0'
		);
		return;
	}

	$widget_obj = $wp_widget_factory->widgets[ $widget ];
	if ( ! ( $widget_obj instanceof WP_Widget ) ) {
		return;
	}

	$default_args = array(
		'before_widget' => '<div class="widget %s">',
		'after_widget' => '</div>',
		'before_title' => '<h2 class="widgettitle">',
		'after_title' => '</h2>',
	);
	$ args = wp_parse_args ($ args, $ default_args);
	$args['before_widget'] = sprintf( $args['before_widget'], $widget_obj->widget_options['classname'] );

	$ instance = wp_parse_args ($ instance);

	/** Цей filter is documented в wp-includes/class-wp-widget.php */
	$instance = apply_filters( 'widget_display_callback', $instance, $widget_obj, $args );

	if ( false === $instance ) {
		return;
	}

	/**
	 * Fires до rendering the requested widget.
	 *
	 * @ Since 3.0.0
	 *
	 * @param string $widget The widget's class name.
	 * @param array $instance Сучасний widget instance's settings.
	 * @param array $args На array of widget's sidebar arguments.
	 */
	do_action( 'the_widget', $widget, $instance, $args);

	$widget_obj->_set(-1);
	$ widget_obj -> widget ($ args, $ instance);
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *