These few lines are very useful for wp_dropdown_categories used in custom taxonomies for backend (edit.php) list subselection. Because values in list are term id and not usable as is for sub selection in query... below parts of code used in a class managing custom post type and custom taxonomy... many thanks for the future new version 2.0 of xili-dictionary plugin...
add_action( 'restrict_manage_posts', array(&$this,'restrict_manage_writer_posts') );
add_action( 'pre_get_posts', array(&$this,'wpse6066_pre_get_posts' ) );
function restrict_manage_writer_posts () {
$selected = "";
if ( isset ( $_GET['writer_name'] ) ) {
$selected = $_GET['writer_name'];
}
$dropdown_options = array(
'taxonomy' => 'writer',
'show_option_all' => __( 'View all writers' ),
'hide_empty' => 0,
'hierarchical' => 1,
'show_count' => 0,
'orderby' => 'name',
'name' => 'writer_name',
'selected' => $selected
);
wp_dropdown_categories( $dropdown_options );
}
/**
* to fixes wp_dropdown_categories id value in option
* thanks to http://wordpress.stackexchange.com/questions/6066/query-custom-taxonomy-by-term-id
*/
function wpse6066_pre_get_posts( &$wp_query )
{
if ( $wp_query->is_tax ) { ;
if ( is_numeric( $wp_query->get( 'writer_name' ) ) ) {
// Convert numberic terms to term slugs for dropdown
$term = get_term_by( 'term_id', $wp_query->get( 'writer_name' ), 'writer' );
if ( $term ) {
$wp_query->set( 'writer_name', $term->slug );
}
}
}
}