wp_dropdown_categories()
Відображає або отримує список категорій у форматі 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
Приклади
#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, ]);
Отримаємо:
Оригінальний код знаходиться тут .
#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>
#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>
#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.0 | Introduced the value_field argument. |
З версії 4.6.0 | Запроваджено потрібний argument. |