Ngày đăng: 26/04/2014 11:47 AM

Thỉnh thoảng khi thiết kế website bằng wordpress bạn muốn tìm kiếm bài viết theo danh mục hoặc tìm kiếm sản phẩm theo loại sản phẩm.

Trong bài viết này , happiweb.net hướng dẫn bạn lọc những sản phẩm theo danh mục sản phẩm. Chúng ta quy ước sau:
custom_post_type: san_pham
custom_taxonomy: danhmuc_sanpham
 

Thêm chức năng lọc Custom Post Type theo Taxonomy trong admin wordpress
Before
 
Thêm chức năng lọc Custom Post Type theo Taxonomy trong admin wordpress
After

Đoạn code dưới làm nhiệm vụ lọc ra những sản phẩm theo danh mục sản phẩm, những chỗ màu đỏ có thể thay đổi theo custom_post_type và custom_taxonomy của bạn. Chèn đoạn code này trong file functions.php

function restrict_books_by_genre() {
    global $typenow;
    $post_type = ‘san_pham’; //
thay đổi   
    $taxonomy = ‘danhmuc_sanpham’; //
thay đổi  
if ($typenow == $post_type) {
        $selected = isset($_GET[$taxonomy]) ? $_GET[$taxonomy] : ”;
        $info_taxonomy = get_taxonomy($taxonomy);
        wp_dropdown_categories(array(
            ‘show_option_all’ => __(“Show All {$info_taxonomy->label}”),
            ‘taxonomy’ => $taxonomy,
            ‘name’ => $taxonomy,
            ‘orderby’ => ‘name’,
            ‘selected’ => $selected,
            ‘show_count’ => true,
            ‘hide_empty’ => true,
        ));
    };
}

add_action(‘restrict_manage_posts’, ‘restrict_books_by_genre’);

function convert_id_to_term_in_query($query) {
    global $pagenow;
    $post_type = ‘san_pham’; //
thay đổi
    $taxonomy = ‘danhmuc_sanpham’; // thay đổi
    $q_vars = &$query->query_vars;
    if ($pagenow == ‘edit.php’ && isset($q_vars[‘post_type’]) && $q_vars[‘post_type’] == $post_type && isset($q_vars[$taxonomy]) && is_numeric($q_vars[$taxonomy]) && $q_vars[$taxonomy] != 0) {
        $term = get_term_by(‘id’, $q_vars[$taxonomy], $taxonomy);
        $q_vars[$taxonomy] = $term->slug;
    }
}
add_filter(‘parse_query’, ‘convert_id_to_term_in_query’);

Chúc bạn thành công với bài viết “thêm chức năng lọc Custom Post Type theo Taxonomy trong admin wordpress” này