Intereting Posts
Проблемы с Ubuntu 12.04, Nginx и MySQL с помощью базы данных WordPress Запросить два типа сообщений и порядок двумя разными полями даты Как добавить страницу редактирования таксономии Совместимость шаблона страницы с различными темами Включить файлы сценариев для подменю admin Потерянный проект по всем постам и черновикам Как подключиться к вызову action / filter Скрыть подкаталог на моем веб-сайте Как использовать один репозиторий git (github) для управления версиями для нескольких тем Как переопределить php-классы моего плагина с дубликатами, которые находятся в моей папке с дочерними темами Возврат списка настраиваемых типов сообщений, за исключением тех, которые не имеют определенного значения meta_value Можете ли вы установить роль автора? Загрузка следующих сообщений с AJAX, не работающим с пользовательским типом сообщения Всплывающее окно или уведомление администратора / обновления на экране редактирования страницы / страницы без обновления страницы. Удаление размеров изображений для пользовательского типа сообщения

Можете ли вы фильтровать wp_dropdown_categories с помощью терминов meta?

Привет, У меня есть пользовательская таксономия с флагом meta с именем 'is_live', и я хочу исключить все термины, где этот флаг является ложным, когда я вызываю wp_dropdown_categories .

Я проверил код, но не вижу ничего, относящегося к терминам meta.

У кого-нибудь есть какие-то идеи или раньше?

Прямого пути нет, поэтому вам придется его взломать. wp_list_categories вызывает get_terms внутри. Есть фильтр terms_clauses который позволит вам изменить условия WHERE для получения условий. Вот как вы можете его использовать:

 <?php add_filter('terms_clauses', 'term_filter', '', 1); function term_filter($pieces){ //echo "<pre>"; //print_r($pieces); //echo "</pre>"; //You can change the entire SQL by examining the pieces array $pieces['where'] .= '<SQL to get the term meta>'; return $pieces; } //Here's how $pieces looks like: Array ( [fields] => t.*, tt.* [join] => INNER JOIN wp313_term_taxonomy AS tt ON t.term_id = tt.term_id [where] => tt.taxonomy IN ('category') AND tt.count > 0 [orderby] => ORDER BY t.term_id [order] => ASC [limits] => ) ?> 

Добавьте условие WHERE условию WHERE по умолчанию. Я не очень хорошо разбираюсь в SQL (честно говоря, я не мог найти, где хранится термин meta!), Поэтому не написал запрос. Для получения дополнительной информации вы можете проверить файл taxonomy.php (строка № 1311) и эти 2 сообщения: Ссылка 1 , Ссылка 2 .

Надеюсь, поможет!