在 wordpress 默认的文章
class TerminQuery{
public function __construct() {
add_filter('parse_query',array($this, 'query'));
add_action('restrict_manage_posts',array($this, 'restrict'));
}
function query($query) {
global $pagenow;
global $typenow;
$qv = &$query->query_vars;
if ($typenow!='post' && $pagenow=='edit.php') {
$taxonomies = get_object_taxonomies($typenow);
foreach ($taxonomies as $taxonomy) {
if (isset($qv[$taxonomy]) && is_numeric($qv[$taxonomy])) {
$term = get_term_by('id',$qv[$taxonomy],$taxonomy);
$qv[$taxonomy] = ($term ? $term->slug : '');
}
}
}
}
function restrict() {
global $typenow;
global $wp_query;
//var_dump($typenow);
if ($typenow!='post') {
$taxonomies = get_object_taxonomies($typenow);
foreach ($taxonomies as $taxonomy) {
$term = get_taxonomy( $taxonomy );
//print_r($term);
wp_dropdown_categories(array(
'show_option_all' => $term->label,
'taxonomy' => $taxonomy,
'name' => $term->name,
'class' => $term->name,
'orderby' => 'name',
'selected' => isset($wp_query->query[$term->name]) ? $wp_query->query[$term->name] :'',
'hierarchical' => true,
'depth' => -1,
'show_count' => true, // Show # listings in parens
'hide_empty' => true, // Don't show businesses w/o listings
));
}
}
}
}
new TerminQuery();

Comments are closed.