Intereting Posts
Последний класс в последнем заголовке? Нужно ли сбросить запрос после использования get_posts ()? Помощь со связанными функциями сообщений Не удается получить доступ к панели мониторинга после обновления до версии 3.5 Как создать раскрывающийся список дочерних категорий текущей таксономии? Media Attachment Пользовательские метаполя не сохраняются в Media Uploader при использовании автозаполнения jQuery UI Как интегрировать таблицу пользовательских баз данных в WordPress и использовать функции WordPress Проблема форматирования меню в WordPress У вас уже есть htaccess, но параметры постоянной ссылки не работают. Получение 404 wp_insert_post удаляет информацию при обновлении Показывать индивидуальный рейтинг автора из запроса совокупного количества просмотров просмотров для всех авторов Как включить пользовательский код на страницу, которая настроена для работы на главной странице? Передача переменной из дочерней темы в родительскую тему Детская тема работает в локальной среде, но не работает на удаленных Установить пост, не опубликованный через неделю, в зависимости от состояния

Почему идентификаторы в URL-адресах не работают, но слизняки?

Я потерян, я не понимаю, почему это работает

http://website.com/?tag=my-cat-slug 

и не

 http://website.com/?tag=15 

Это действительно раздражает, потому что wp_dropdown_categories() только предоставляет идентификаторы как значения.

Я попытался изменить постоянные ссылки на настройки по умолчанию вместо перезаписи:

 http://website.com/?p=123 

Но ничего не изменилось

Solutions Collecting From Web of "Почему идентификаторы в URL-адресах не работают, но слизняки?"

Потому что переменная запроса tag ожидает значения в терминах slug. Он будет искать термин с slug '15' (который, по-видимому, не существует).

И, да, его довольно разочаровывает то, что wp_dropdown_categories() использует идентификатор как значение, а не пул. Это связано с тем, что оно первоначально использовалось только для категорий (для которых обычно используются идентификаторы, а не пули), в отличие от общих таксономий.

Однако на этом есть этот билет . Я создал этот метод , который может позволить вам использовать wp_dropdown_categories() использования значения slugs, а не идентификаторов.

Для справки (следующий класс должен войти в плагин):

 /* * A walker class to use that extends wp_dropdown_categories and allows it to use the term's slug as a value rather than ID. * * See http://core.trac.wordpress.org/ticket/13258 * * Usage, as normal: * wp_dropdown_categories($args); * * But specify the custom walker class, and (optionally) a 'id' or 'slug' for the 'value' parameter: * $args=array('walker'=> new SH_Walker_TaxonomyDropdown(), 'value'=>'slug', .... ); * wp_dropdown_categories($args); * * If the 'value' parameter is not set it will use term ID for categories, and the term's slug for other taxonomies in the value attribute of the term's <option>. */ class SH_Walker_TaxonomyDropdown extends Walker_CategoryDropdown{ function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ){ $pad = str_repeat('&nbsp;', $depth * 3); $cat_name = apply_filters('list_cats', $category->name, $category); if( !isset($args['value']) ){ $args['value'] = ( $category->taxonomy != 'category' ? 'slug' : 'id' ); } $value = ($args['value']=='slug' ? $category->slug : $category->term_id ); $output .= "\t<option class=\"level-$depth\" value=\"".$value."\""; if ( $value === (string) $args['selected'] ){ $output .= ' selected="selected"'; } $output .= '>'; $output .= $pad.$cat_name; if ( $args['show_count'] ) $output .= '&nbsp;&nbsp;('. $category->count .')'; $output .= "</option>\n"; } } 

Применение

 $args=array( 'walker'=> new SH_Walker_TaxonomyDropdown(), 'value'=>'slug', .... ); wp_dropdown_categories($args); 

Параметр «значение» необязательный. Значение по умолчанию будет «id» для категорий и «slug» для других таксономий.