[WordPress] Sửa lại cài đặt custom post type sau khi đăng ký – registered_post_type

Quảng cáo
Ads_ngang
Website dinhthuanit.com có bài [WordPress] Sửa lại cài đặt custom post type sau khi đăng ký – registered_post_type

Trong bài trước mình có hướng dẫn cách tạo custom post type trong wordpress, tuy vậy với các tình huống post type được định nghĩa bởi một plugin khác và bạn không tìm thấy hàm đăng ký cho post type đó hoặc không có hàm đăng ký như bạn thường sử dụng. Bạn cần tìm một biện pháp khác.

Nhiều plugin có tạo custom post types mới, có hiển thị label trong admin, bạn cũng có thể sửa lại các cài đặt nhãn hiển thị..thiết lập private cho post type và mọi tham số của hàm register_post_type .

Tất cả các gì bạn mong muốn làm giống như trên chỉ sử dụng duy nhất một hook không cần cài đặt thêm bất kỳ plugin nào.

Trước tiên, tôi sẽ thử đăng ký post type ‘gs_books’ cho website.

    x_( 'Books', 'gs_books' ), 'singular_name' =>  x_( 'Book', 'gs_books' ), 'add_new' =>  x_( 'Add New', 'gs_books' ), 'all_items' =>  x_( 'All Books', 'gs_books' ), 'add_new_item' =>  x_( 'Add New Book', 'gs_books' ), 'edit_item' =>  x_( 'Edit Book', 'gs_books' ), 'new_item' =>  x_( 'New Book', 'gs_books' ), 'view_item' =>  x_( 'View Book', 'gs_books' ), 'search_items' =>  x_( 'Search Books', 'gs_books' ), 'not_found' =>  x_( 'No Books found', 'gs_books' ), 'not_found_in_trash' =>  x_( 'No Books found in trash', 'gs_books' ), 'parent_item_colon' =>  x_( 'Parent Book:', 'gs_books' ), 'menu_name' =>  x_( 'Amazon Books', 'gs_books' ) ); /** Setup args */ $args = array( 'labels' =>  $labels, 'description' =>  x_( 'Amazon Books post type', 'gs_books' ), 'public' =>  true, 'menu_position' =>  20, 'supports' =>  array( 'title', 'editor', 'excerpt', 'page-attributes', ), 'has_archive' =>  'books', 'rewrite' =>  array( 'slug' =>  'book', ), ); /** Register Custom Post Type */ register_post_type( 'gs_books', $args ); }  

Đoạn code trên tạo thêm menu Amazon Books hiển thị cho custom post type ‘gs_books’. Nhưng bạn mong muốn đổi nhãn thành “Books” thì làm thế nào?

Sử dụng hook registered_post_type , bạn có thể sửa mọi post type có trong wordpress.

   labels-> menu_name = __( 'Books', 'gs_books' ); $wp_post_types[ $post_type ] = $args; } }  

Bên cạnh đó, các Custom Post Types được quản lý bởi biến global $wp_post_types , như vậy bạn cũng cũng có thể sửa lại thông số cài đặt cho post type trực tiếp vào đối tượng $wp_post_types. Truy cập post type trong hook ‘init’ như sau:

   labels-> menu_name = __( 'Books', 'gs_books' ); }  

Sửa post type mặc định

Với hook trên bạn cũng đều có thể sử dụng để sửa lại thông tin đăng ký post type có mặc định trong wordpress như ‘post’. Tuy nhiên không hoàn toàn, một số phần tử khác được hook khác quản lý. Nếu muôn sửa toàn diện bạn phải kết hợp các hooks với nhau.
Ví dụ sau sửa được nhãn hiển thị của kiểu post.

 function revcon_change_post_object() { global $wp_post_types; $labels = &$wp_post_types['post']-> labels; $labels-> name = 'News x'; $labels-> singular_name = 'News x'; $labels-> add_new = 'Add News x'; $labels-> add_new_item = 'Add News x'; $labels-> edit_item = 'Edit News x'; $labels-> new_item = 'News x'; $labels-> view_item = 'View News x'; $labels-> search_items = 'Search News x'; $labels-> not_found = 'No News found x'; $labels-> not_found_in_trash = 'No News found in Trash x'; $labels-> all_items = 'All News x'; $labels-> menu_name = 'News x'; $labels-> name_admin_bar = 'News x'; } add_action( 'init', 'revcon_change_post_object' );  

Kết quả: nút thêm bài viết có sửa lại nhãn, hay sửa titlebar trên trình duyệt..
modify-default-post-registered-wp

Tên menu gồm cả submenu hiển thị ở admin được quản lý bởi biến global $menu , global $submenu .
Chúng ta sửa lại địa thế menu này trong hook ‘init’ như sau:

 function revcon_change_post_label() { global $menu; global $submenu; $menu[5][0] = 'News'; $submenu['edit.php'][5][0] = 'News'; $submenu['edit.php'][10][0] = 'Add News'; $submenu['edit.php'][16][0] = 'News Tags'; echo ''; } add_action( 'admin_menu', 'revcon_change_post_label' );  

kết quả: nhãn hiển thị trước đó “Bài viết” được đổi thành “News”, xem thêm 1 số chuỗi trong biến $submenu và $menu nếu cần sửa thêm.
modify-default-post-registered-wp1

Hãy cho mình biết suy nghĩ của bạn trong phần bình luận bên dưới bài viết này. Hãy theo dấu kênh chia sẻ kiến thức WordPress của TopVn trên Twitter và Facebook

Bài viết [WordPress] Sửa lại cài đặt custom post type sau khi đăng ký – registered_post_type được tổng hợp và biên tập bởi: dinhthuanit.com. Mọi ý kiến đóng góp và phản hồi vui lòng gửi Liên Hệ cho dinhthuanit.com để điều chỉnh. dinhthuanit.com xin cảm ơn.

Bài Viết Liên Quan


Bài Viết Khác


Quảng cáo
Ads_ngang