Mã: Tạo Custom Taxonomy “Website”

by daiphucminh

Đoạn mã này được thiết kế để tạo một Phân loại Tùy chỉnh (Custom Taxonomy) mới có tên là Website và gán nó vào các bài viết thông thường (Post Type post). Về cơ bản, nó tạo ra một loại “chuyên mục” (category) song song với chuyên mục mặc định của WordPress.

🎯 Mục đích

Mục đích chính là giúp bạn phân loại các bài viết không chỉ theo “Chuyên mục” (Category) và “Thẻ” (Tag) mặc định, mà còn theo một tiêu chí mới là Website. Ví dụ: Nếu bạn đang viết về các tin tức công nghệ, bạn có thể phân loại bài viết theo nguồn hoặc lĩnh vực website mà tin tức đó đề cập (ví dụ: “Google”, “Microsoft”, “Apple”).

A. Tắt thông báo lỗi, cảnh báo (Plugin/Theme Notices):

// Tắt Hầu Hết các thông báo admin (Admin Notices)
function remove_all_admin_notices() {
    global $wp_filter;
    if ( isset( $wp_filter['user_admin_notices'] ) ) {
        unset( $wp_filter['user_admin_notices'] );
    }
    if ( isset( $wp_filter['admin_notices'] ) ) {
        unset( $wp_filter['admin_notices'] );
    }
    if ( isset( $wp_filter['all_admin_notices'] ) ) {
        unset( $wp_filter['all_admin_notices'] );
    }
}
add_action( 'in_admin_header', 'remove_all_admin_notices', 999 );

Hoặc

// Tắt Hầu Hết các thông báo admin (Admin Notices)
function remove_all_admin_notices() {
    global $wp_filter;
    if ( isset( $wp_filter['user_admin_notices'] ) ) {
        unset( $wp_filter['user_admin_notices'] );
    }
    if ( isset( $wp_filter['admin_notices'] ) ) {
        unset( $wp_filter['admin_notices'] );
    }
    if ( isset( $wp_filter['all_admin_notices'] ) ) {
        unset( $wp_filter['all_admin_notices'] );
    }
}
add_action( 'in_admin_header', 'remove_all_admin_notices', 999 );

B. Tắt thông báo cập nhật của WordPress:

// Tắt tất cả thông báo cập nhật (bao gồm theme, plugin, core)
function hide_update_notices() {
    remove_action( 'admin_notices', 'update_nag', 3 );
    remove_action( 'admin_notices', 'maintenance_nag' );
}
add_action( 'admin_notices', 'hide_update_notices', 1 );

⚙️ Cách Sử Dụng Mã

  1. Sao chép mã: Sao chép toàn bộ đoạn mã PHP.

  2. Dán vào functions.php: Mở file functions.php của Theme hoặc Child Theme đang hoạt động và dán đoạn mã này vào cuối file.

  3. Lưu file: Lưu lại thay đổi.

  4. Kiểm tra kết quả:

    • Truy cập Bảng điều khiển (Dashboard) WordPress.

    • Bạn sẽ thấy một mục menu mới có tên là “Website” xuất hiện ngay dưới mục “Bài viết” (Posts).

    • Khi chỉnh sửa bài viết, bạn sẽ thấy một hộp meta mới để chọn và thêm các thuật ngữ “Website” vào bài viết đó.


🧠 Giải Thích Chi Tiết Cấu trúc Code

Đoạn mã này sử dụng hàm cốt lõi của WordPress là register_taxonomy() và được kích hoạt thông qua hook init.

1. Hàm và Hook

Thành phần Mã Ý nghĩa
Hàm register_taxonomy( $taxonomy, $object_type, $args ) Hàm PHP để tạo một Taxonomy mới.
Tên Taxonomy 'website' Tên định danh (slug) của Taxonomy trong database và code.
Post Type Gán 'post' Gán Taxonomy ‘website’ này vào Post Type mặc định là ‘Bài viết’.
Hook add_action('init', 'dpm_tao_taxonomy_website'); Đảm bảo rằng Taxonomy được đăng ký sớm trong quá trình tải của WordPress.

2. Các Tham số (Arguments) Quan trọng

Tham số Giá trị Ý nghĩa và Tác dụng
labels (Array) Tập hợp các chuỗi hiển thị trên giao diện quản trị (Dashboard, menu, nút Thêm mới, v.v.).
hierarchical true Quan trọng: Cho phép Taxonomy có cấu trúc phân cấp (giống như Category/Chuyên mục, có cha và con).
public true Cho phép Taxonomy được truy cập công khai trên giao diện người dùng (Front-end).
show_ui true Hiển thị giao diện quản lý Taxonomy trên Dashboard.
show_admin_column true Hiển thị Taxonomy này dưới dạng cột trong danh sách Bài viết.
show_in_nav_menus true Cho phép thêm các thuật ngữ (term) của Taxonomy này vào Menu điều hướng của website.
show_in_rest true Cho phép Taxonomy hoạt động với WP REST API (cần thiết nếu bạn dùng trình chỉnh sửa Gutenberg hoặc phát triển ứng dụng di động).
rewrite (Array) Thiết lập cấu trúc đường dẫn URL (Permalink). Slug sẽ là yourdomain.com/website/ten-website-da-tao/.

 

Related Posts

Leave a Comment

-
00:00
00:00
Update Required Flash plugin
-
00:00
00:00