Nhận danh mục wordpress hiện tại
Hướng dẫn cài đặt WordPress, Hướng dẫn lập trình WordPress, Học WordPress mien phi, Học WordPress trực tuyến, Học WordPress mien phi, SEO WordPress, Plugin WordPress, Giao diện WordPress, Công cụ WordPress, Phát triển WordPress, Câu hỏi thường gặp về WordPress
Trong WordPress, có nhiều cách khác nhau để hiển thị danh sách tất cả các danh mục ra trang chủ hoặc widget. Mặc định thì WordPress có Widget name Categories (đối với bài đăng) và Product Categories (đối với Woocommerce) để bạn chèn vào Widget. Tuy nhiên, nếu bạn muốn hiển thị danh sách các Danh mục ra trang chủ, hoặc vào trong trang, hoặc bất kỳ địa điểm nào khác, thì lúc đó bạn sẽ cần mã hóa thêm chức năng để nhận danh mục. Ở bài viết này mình sẽ hướng dẫn các bạn sử dụng hàm get_categories() để hiển thị danh mục bài viết hay danh mục sản phẩm ở bất kỳ đâu trong WordPress Show
Mục lục Thể loại là gì?Category dịch ra tiếng Việt có nghĩa là thể loại, danh mục. Nó dùng để chỉ một nhóm các đồ vật, sự vật, hiện vật có đặc tính hay tính năng tương tự nhau Trong WordPress, Category là một thuật ngữ để chỉ một thể loại bài viết hay còn gọi là chuyên mục của bài viết. Trong tiếng Anh, Category là số ít, còn số nhiều là Categories dùng để chỉ danh mục bài viết, hay danh mục sản phẩm Để cho dễ hiểu chúng ta cùng xem qua website huyhoa. bọc lưới. Ở đây Category là các danh mục như WordPress, Woocommerce, Sức khỏe, Làm đẹp… Các bài viết cụ thể có thể được gắn vào các Category này theo tùy chọn nội dung của bài viết đó viết về cái gì Chuyên mục giúp cả người viết và người đọc phân biệt được chủ đề của một bài viết cụ thể và gom những bài viết thuộc cùng một chủ đề nào đó vào chung một trang Ví dụ khi truy cập vào Category Lập Trình trên huyhoa. net thì bạn sẽ chỉ thấy các bài viết liên quan đến WordPress. Sẽ không có chuyện bài viết về sức khỏe hay du lịch mà lại cho vào Category WordPress Cách sử dụng hàm get_categories() để lấy danh mục trong WordPressĐể lấy danh mục trong WordPress, ta có thể sử dụng hàm get_categories() Để hiểu cách hoạt động cũng như cách sử dụng hàm này, trước tiên chúng ta sẽ xem qua về cú pháp của hàm get_categories() Mã nguồn. Hàm này được tìm thấy trong tệp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 function get_categories( $args = '' ) { $defaults = mảng( 'taxonomy' => 'category' ); $args = wp_parse_args( $args, $defaults ); /** * Lọc phân loại được sử dụng để truy xuất các thuật ngữ khi gọi hàm get_categories() * * @kể từ 2. 7. 0 * * @param string $taxonomy Phân loại để truy xuất các thuật ngữ từ * @param array $args Một mảng đối số. Xem get_terms() */ $args['phân loại'] = apply_filters( 'get_categories_taxonomy', $args['taxonomy'], $args ); // Tương thích ngược. if ( isset( $args['type'] ) && 'link' === $args['type'] ) { _deprecated_argument( __CHỨC NĂNG__, '3. 0. 0', chạy nước rút ( /* người dịch. 1. "loại => liên kết", 2. "phân loại => link_category" */ __( '%1$s không được dùng nữa. Sử dụng %2$s thay thế. ' ), ' ' ) ); $args['phân loại'] = 'link_category'; } $categories = get_terms( $args ); if ( is_wp_error( $categories ) ) { $categories = array(); } else { $categories = (mảng) $categories; foreach ( array_keys( $categories ) as $k ) { _make_cat_compat( $categories[ $k ] ); } } return $categories; } Cú pháp sử dụng1 get_categories( chuỗi. mảng $args = '' ) Thông số$args. an array (mảng) Xác định các tham số khi truy vấn dữ liệu. Tùy mục đích bạn muốn lấy là gì, mảng này sẽ có thể bao gồm 1 hoặc tất cả các tham số sau Các tham số này sẽ quyết định danh sách các “danh mục” được hiển thị
Giải thích
Trở lạiKết quả trả về của hàm này là một mảng chứa danh sách các “đối tượng danh mục“. Mỗi một đối tượng sẽ chứa danh sách các thuộc tính của một chủ đề như id, tên, mô tả, … Các giá trị trả về trong đối tượng
Các ví dụ về lấy danh mục trong WordPressHiển thị tất cả các danh mụcĐoạn mã này sẽ hiển thị tất cả các danh mục đang có trên trang web WordPress của bạn, kể cả những danh mục không có bài viết nào và hiển thị ra bên ngoài văn bản phân cách các danh mục bằng dấu phẩy (,) 1 2 3 4 5 6 7 8 9 10 11 $args_cat = mảng( 'type' = > 'post', 'số' = > 100, 'hide_empty' = > 0, 'cha mẹ' = > 0 ); $categories_cat = get_categories( $args_cat ); $th_1234 = ''''''''''''''''''''''''''''''''''; foreach ( $categories_cat as $t_cat ) { $th_1234 . = $t_cat - > . . ', ' ; } Kết quả nó sẽ hiển thị kiểu này Lấy liên kết của một danh mục Tiếp tục lấy ví dụ như bên trên, bên trong vòng lặp foreach, ta có thể lấy liên kết của một danh mục bằng cách sử dụng hàm get_term_link 1 2 3 4 5 6 7 8 $args_cat = mảng( 'type'< => 'post', 'number' => 100, 'hide_empty'=> 0, 'parent' => 0 ); $categories_cat = get_categories( $args_cat ); $th_1234 = '''''''''''''''''''''''''''''''''''''''; foreach ( $categories_cat as $t_cat ) { $th_1234 . = '.get_term_link($t_cat->slug, 'category').'">'. $t_cat - >tên. ', ' ; } echo $th_1234; Time, results will show thisthế này Hiển thị tất cả danh mục sản phẩm trong woocommerceCác ví dụ bên trên là với bài đăng, còn đối với danh mục sản phẩm trong Woocommerce thì bạn chỉ cần thay phân loại từ danh mục thành sản phẩm_cat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 $args_cat = mảng( 'type' = > 'product', 'số' = > 100, 'hide_empty' = > 0, 'cha mẹ' = > 0 ); $categories_cat = get_categories( $args_cat ); $th_1234 = '''''''''''''''''''''''''''''''''''''''''''';< foreach ( $categories_cat as $t_cat ) { $th_1234 . = '.get_term_link($category->slug, 'product_cat').'">'. $t_cat - >tên. ', ' ; } ?> Nhận danh mục khi có cat_idLưu ý là đối với wordpress thì category là taxonomy. Khi đó muốn get category theo id, slug, name hay gì thì cũng quy về là lấy thông tin của taxonomy term. Cụ thể, giả sử ta muốn lấy danh mục khi biết ID danh mục là 18, lúc đó đoạn mã sẽ như thế này 1 2 3 // lấy tên thuật ngữ phân loại bằng sên $category = get_term_by('id'<, 18, 'category'); $term_name = $category - >name; Ở ví dụ bên trên, mình có sử dụng hàm get_term_by() để lấy dữ liệu về danh mục có ID 18. Giá trị trả về là một Đối tượng WP_Term với các thông tin đầy đủ về danh mục đó. Cụ thể, kết quả trả về sẽ như thế này 1 2 3 4 5 6 7 8 9 10 11 12 13 WP_Term Đối tượng ( [term_id] = > 18 [tên] = > Tên của Category có id là 18 [sên] = > slug-cua-category-co-id-18 [term_group] = > 0 [term_taxonomy_id] = > 18 [phân loại] = > category [mô tả] = > Mô tả của category ở đây [cha mẹ] = > 0 [đếm] = > 10 [bộ lọc] = > raw ) Nhận danh mục khi biết tên danh mụcTương tự như cách làm bên trên, ta chỉ cần thay id bằng tên. Lưu ý là cách này chỉ lấy thuật ngữ đầu tiên mà nó nhận được 1 2 3 // lấy ID danh mục theo tên danh mục $category = get_term_by('name'<, 'Sức khỏe', 'category'); $term_name = $category - >name; Nếu các bạn muốn lấy tất cả ID danh mục theo tên danh mục thì phải sử dụng hàm get_terms như bên dưới đây. Sở dĩ sử dụng cái get_term_by() nó không trả về hết kết quả là vì có thể nó có nhiều danh mục có cùng 1 tên, nhưng ID và slug nó khác nhau (danh mục cha, danh mục con chẳng hạn) 1 2 3 4 5 // Lấy các từ có tên bắt đầu bằng "my_name" get_terms( 'danh mục', mảng( 'name__like' => 'my_name' ) );
// Lấy các từ có tên chứa "my_name" get_terms( 'danh mục', mảng( 'search' => 'my_name' ) ); (Nhìn hình bên dưới sẽ thấy có thể có nhiều danh mục trùng tên nhưng lại có id khác nhau) Get category when known slugNhận thông tin về danh mục khi biết slug cũng tương tự như vậy 1 2 3 // lấy tên thuật ngữ phân loại bằng sên $category = get_term_by('slug'<, 'tin-tuc', 'category') $term_name = $category - >name; Hiển thị danh mục dưới dạng danh sách thả xuống chọnĐể hiển thị tất cả các danh mục trong danh sách thả xuống WordPress dưới dạng chọn, ta có thể sử dụng hàm wp_dropdown_categories() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
$args = mảng( 'show_option_all' = > '',< 'show_option_none' = > __( 'All categories' ), 'option_none_value' = > '',< 'orderby' = > 'ID', 'order' = > 'ASC', 'show_count' = > 1, 'hide_empty' = > 0, 'child_of' = > 0, 'bao gồm' = > '',< 'echo' = > 1, 'được chọn' = > 0, 'phân cấp' = > 1, 'tên' = > 'danh mục', 'id' = > 'category', 'class' = > 'form-control', 'độ sâu' = > 0, 'tab_index' = > 0, 'phân loại' = > 'danh mục', 'hide_if_empty' = > false, 'value_field' = > 'slug', ); wp_dropdown_categories( $args );
?> Ở đây các bạn cần lưu ý vài thông số
Nhận danh mục Wooc Commerce và hiển thị dưới dạng danh sách chọnĐối với post thì taxonomy là category, còn đối với Woocommerce thì taxonomy là product_cat. Bạn chỉ cần khai báo taxonomy còn các thứ khác thì tương tự như lấy danh mục của bài đăng thôi 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 chức năng huyhoa_category_lists( ) { $categories = get_categories( mảng( 'hide_empty' = > 0, 'phân loại' = > 'product_cat' / ) ); $category_lists = mảng(); $category_lists[0] = __( 'Select Product Category' , 'huyhoa' ); foreach( $categories as $category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category$category ){ $category_lists[$category - >term_id] = $category->name; } return $category_lists; } Liệt kê các bài viết theo danh mụcVề cơ bản thì không thể trực tiếp lấy bài viết và cả danh mục sau đó hiển thị ngay lập tức được trong WordPress. Tuy nhiên, chúng ta có thể sử dụng đường vòng một chút. Quy trình sẽ như thế này Bước 1. Trước tiên, bạn cần tạo tùy chỉnh truy vấn WP_Query để truy xuất tất cả các bài đăng đã được xuất bản |