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_idnameslugterm_groupterm_taxonomy_idtaxonomydescriptionparentcount(з версії 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. |