wp_dropdown_categories() WP 2.1.0

Відображає або отримує список категорій у форматі HTML. Замість рубрик можна назвати довільну таксономію.

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

Повертає

Строку. HTML код списку категорій ( <select>).

Шаблон використання
$ args = array (
	'show_option_all' => '',
	'show_option_none' => '',
	'option_none_value' => -1,
	'orderby' => 'ID',
	'order' => 'ASC',
	'show_last_update' => 0,
	'show_count' => 0,
	'hide_empty' => 1,
	'child_of' => 0,
	'exclude' => '',
	'echo' => 1,
	'selected' => 0,
	'hierarchical' => 0,
	'name' => 'cat',
	'id' => 'name',
	'class' => 'postform',
	'depth' => 0,
	'tab_index' => 0,
	'taxonomy' => 'category',
	'hide_if_empty' => false,
	'value_field' => 'term_id',
	'required' => false,
);

wp_dropdown_categories( $args );

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

wp_dropdown_categories( $args );
$args
(рядок/масив)
Масив аргументів, які потрібно змінити. Можна вказати рядок запиту.


За промовчанням: масив аргументів за умовчанням

Аргументи параметра $args

Крім цих параметрів можна вказати ще й функції get_terms() .

show_option_all
(рядок)
Текст для відображення всіх категорій. Буде початковим текстом у списку.


За замовчуванням: ”
show_option_none
(рядок)
Текст для
<option> пункту “без категорій” (коли нічого не вибрано). Буде початковим
<option> у списку або другим, якщо встановлено
show_option_all .


За замовчуванням: ”
option_none_value
(рядок)
Значення
<option> якщо встановлено параметр
show_option_none .


За замовчуванням: -1
orderby
(рядок)

Сортування списку за певними критеріями. Наприклад, за кількістю постів у кожній категорії або за назвою категорій. Доступні такі критерії:

  • ID– Сортування за ID;
  • name– сортування за назвою (за умовчанням);
  • slug– Сортування по алт. імені (slug);
  • count– за кількістю записів у категорії;
  • term_group– по групі.
    За замовчуванням: ‘ID’
order
(рядок/масив)

Напрямок сортування:

  • ASC– По порядку, від меншого до більшого (1, 2, 3; a, b, c);
  • DESC– у зворотному порядку, від більшого до меншого (3, 2, 1; c, b, a).
    За замовчуванням: ‘ASC’
show_last_update
(рядок/масив)
Показати останнє оновлення категорії 1 – так, 0 – ні (у мене при зміні параметра нічого не змінилося).


Типово: false
show_count
(логічний)

Показувати (1) чи ні (0) кількість записів у категорії. Число записів буде показано після назви категорії у дужках (наприклад, Психологія (16)).

  • 1 (true)– показувати кількість записів;
  • 0 (false)– Не показувати кількість записів.
hide_empty
(Логічний)

Показувати (0) чи ні (1) категорії, які не мають записів (порожні категорії).

  • 0 (true)– Показувати порожні;
  • 1 (false)– Не показувати порожні категорії.
    За замовчуванням: 1
child_of
(рядок/масив)
Показати дочірні категорії. У параметрі вказується ID батьківської категорії (категорія, вкладені категорії якої потрібно показати).


За замовчуванням: ”
exclude
(рядок/число)
ID категорій, які потрібно виключити. Вказувати через кому.


За замовчуванням: ”
exclude_tree
(рядок/масив)
ID батьківської категорії, дерево якої потрібно показувати. Дерево категорії – це категорія і всі вкладені категорії.
echo
(логічний)
1 – виводити результат на екран. 0 – повертати для обробки.


За замовчуванням: 1
depth
(число)
Глибина вкладеності дочірніх категорій. Ігнорується якщо параметр hierarchical вимкнено.


За замовчуванням: 0
tab_index
(рядок)
Значення атрибуту tabindex у HTML тегу <select>
name
(рядок)
Значення атрибута name у HTML тега <select>


За замовчуванням: cat
id
(рядок)
Значення атрибута ID у тега <select>


За замовчуванням: як у name
class
(рядок)
Атрибут class для select елемента.


За замовчуванням: ‘postform’
selected
(число/рядок)
Який елемент слід виділити. Порівнюється зі значенням
value_field . Зазвичай тут вказується ID категорії, яка має бути виділена.


За замовчуванням: виставляється ID категорії, якщо користувач на сторінці категорії.
hierarchical
(число | логічний)
Виводити категорії у вигляді дерева. 1 – так, показати як дерево, 0 – вивести суцільним списком.


За замовчуванням: 0
pad_counts
(логічний)
Підраховувати кількість постів для батьківських категорій як сума всіх постів у вкладених категоріях. Якщо параметри
включені show_counts,
hierarchicalцей параметр автоматично вмикається (стає true).


Типово: false
taxonomy
(рядок)
Назва таксономії з якою працюватиме функція.


Типово: ‘category’
hide_if_empty
(логічний)
Сховати список, що випадає, якщо повернувся порожній результат? true – так, не показувати список, якщо немає категорій. false – показувати порожній список.


Типово: false
value_field
(рядок)

Поле терміна, яке виводитиметься у value у <option> . Може бути:

  • term_id
  • name
  • slug
  • term_group
  • term_taxonomy_id
  • taxonomy
  • description
  • parent
  • count(з версії WP 4.2)

За замовчуванням: ‘term_id’

required
(логічний)
Чи додавати
<select> атрибут HTML5 ‘required’. З версії 4.6.


Типово: false

Приклади

2

#1 Додамо параметр multiple

// Цей filter allow a wp_dropdown_categories select to return multiple items
add_filter( 'wp_dropdown_cats', 'willy_wp_dropdown_cats_multiple', 10, 2);
function willy_wp_dropdown_cats_multiple( $output, $r ) {

	if ( ! empty( $r['multiple'] ) ) {
		$output = preg_replace( '/<select(.*?)>/i', '<select multiple="multiple">', $output );
		$output = preg_replace( '/name=(['"]{1})(.*?)/i', 'name=[]', $output );
	}

	return $output;
}

Тепер використовуємо функцію з параметромmultiple

wp_dropdown_categories([
	'taxonomy' => 'category',
	'multiple' => true,
	'selected' => '10, 12', // selected terms…
	'hide_empty' => false,
]);

Отримаємо:

wp_dropdown_categories() – Відображає або отримує список категорій у форматі HTML.

Оригінальний код знаходиться тут .

0

#2 Список, що випадає з кнопкою Submit

Приклад виведення списку категорій з кнопкою сабміта:

<h2>Категорії:</h2>
<form action="<?php bloginfo('url'); ?>" method="get">
	<?php wp_dropdown_categories('show_count=1&hierarchical=1'); ?>
	<input type="submit" name="submit" value="view" />
</form>
0

#3 Випадаючий список з використанням Javascript (без кнопки Сабміта)

Приклад, який демонструє використання аргументу show_option_none:

<h2>Категорії:</h2>
<?php wp_dropdown_categories('show_option_none=Select category'); ?>

<script>
	var dropdown = document.getElementById("cat");
	function onCatChange() {
		if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
			location.href = "<?php echo get_option('home');
?>/?cat="+dropdown.options[dropdown.selectedIndex].value;
		}
	}
	dropdown.onchange = onCatChange;
</script>
0

#4 Список, що випадає з використанням Javascript (2) (без кнопки Сабміта)

<h2><?php _e('Posts by Category'); ?></h2>
<form action="<?php bloginfo('url'); ?>/" method="get">
	<div>
	<?php
	$select = wp_dropdown_categories('show_option_none=Select category&show_count=1&orderby=name&echo=0');
	$select = preg_replace("#<select([^>]*)>#", "<select onchange='return this.form.submit()'>", $select);
	echo $select;
	?>
		<noscript><div><input type="submit" value="View" /></div></noscript>
		</div>
</form>

список змін

З версії 2.1.0Введено.
З версії 4.2.0Introduced the value_field argument.
З версії 4.6.0Запроваджено потрібний argument.