Nhảy tới nội dung
Phiên bản: 7.3.0

Taxonomy

Post Type

Theo mặc định, SkillDo đi kèm với post (bài viết), bạn có thể tạo bao nhiêu loại nội dung tùy chỉnh tùy thích và các loại nội dung tùy chỉnh này được gọi là custom post type . Một Custom Post Type sẽ hoàn toàn có đủ những chức năng giống hệt như post type mặc định, nghĩa là bạn có thể sử dụng category, tag, custom field, featured image,….và có thể gọi hiển thị ra ngoài trang chủ cùng lúc với Post.

Taxonomy::addPost

Thêm một post type vào hệ thống

Tham số truyền vào bao gồm:

::addPost($post_type, $args)
ParamsTypeDescriptionDefault
$post_typestringLoại post type của bạn (Ex: question, project, ebooks...)
$argsarrayMãng các tham số cấu hình

Tham số $args bao gồm:

ParamsTypeDescriptionDefault
labelsarray

name : tên của post type dạng số nhiều

singular_name : tên của post type dạng số ít

publicbooleantrue sử dụng, false không sử dụngtrue
show_in_nav_menusbooleantrue sẽ xuất hiện trong theme/menu để có thể thao tác sử dụng ngoài giao diện clienttrue
show_in_nav_adminbooleantrue sẽ xuất hiện trong sidebar admintrue
menu_positionintThứ tự sắp xếp với các menu khác ở sidebar admin0
menu_iconstringIcon ở sidebar adminnull
supportsarrayCấu hình hiển thị các metabox và field trong trang thêm (cập nhật) bài viết
capabilitiesarrayCác quyền mà post type cung cấp cho người dùngLấy của post

Tham số supports bao gồm:

Group:: danh sách các Metabox sẽ hiển thị

  • info: Group thông tin bao gồm các field (title, excerpt, content)
  • media: Group media bao gồm các field (image)
  • seo: Group seo bao gồm các field (slug, seo_title, seo_keywords, seo_description)
  • theme: Group Template bao gồm các field (theme_layout, theme_view)

Field:: danh sách các Field sẽ hiển thị

  • title: tiêu đề bài viết
  • excerpt: mô tả ngắn
  • content: nội dung chi tiết
  • image: ảnh đại diện
  • slug, seo_title, seo_keywords, seo_description : các trường thông tin seo
  • theme_layout, theme_view : các trường cấu hình template
$label = [
'name' => 'Các dự án', //Tên post type dạng số nhiều
'singular_name' => 'Dự án' //Tên post type dạng số ít
];

$supports = [
'group' => ['info', 'media', 'seo', 'theme'],
'field' => [
'title', 'excerpt', 'content', 'image', 'public', 'slug',
'seo_title', 'seo_keywords', 'seo_description', 'theme_layout', 'theme_view'
]
];

$args = [
'labels' => $label, //Gọi các label trong biến $label ở trên
'public' => true, //Kích hoạt post type
'show_in_nav_menus' => true, //hiển thị bên trang quản lý menu.
'show_in_nav_admin' => true, //Hiển thị trên thanh Admin bar màu đen.
'menu_position' => 5, //Thứ tự vị trí hiển thị trong menu (tay trái)
'menu_icon' => '', //Đường dẫn tới icon sẽ hiển thị
'taxonomies' => array('category', 'post_tag'), //cate type được phép sử dụng
'supports' => $supports,
'capabilities' => [
'view' => 'view_posts',
'add' => 'add_posts',
'edit' => 'edit_posts',
'delete' => 'delete_posts',
]
];
Taxonomy::addPost('project', $args);

Taxonomy::getPost

Lấy thông tin của post type đã được đăng ký vào hệ thống

Tham số truyền vào bao gồm:

::getPost($post_type)
Taxonomy::getPost('post');

Taxonomy::hasPost

Kiểm tra post type có được đăng ký chưa nếu có trả về true ngược lại là false

Taxonomy::hasPost($post_type)

Taxonomy::removePost

Gở bỏ post type khỏi hệ thống.

if(Taxonomy::hasPost($post_type)) {
Taxonomy::removePost($post_type)
}

Cate Type

Taxonomy là tập hợp những thể loại giống như category. Mặc định khi bạn cài đặt SkillDo sẽ có taxonomies mặc định đó là Category.

Taxonomy::addCategory

Thêm một cate type vào hệ thống

Tham số truyền vào bao gồm:

::addCategory($cate_type, $post_type, $args)
ParamsTypeDescriptionDefault
$cate_typestringLoại cate type của bạn (Ex: question...)
$post_typestringLoại post type của bạn (Ex: answer...)
$argsarrayMãng các tham số cấu hình

Tham số $args bao gồm:

ParamsTypeDescriptionDefault
labelsarray

name : tên của cate type dạng số nhiều

singular_name : tên của cate type dạng số ít

publicbooleantrue sử dụng, false không sử dụngtrue
show_in_nav_menusbooleantrue sẽ xuất hiện trong theme/menu để có thể thao tác sử dụng ngoài giao diện clienttrue
show_in_nav_adminbooleantrue sẽ xuất hiện trong sidebar admintrue
menu_positionintThứ tự sắp xếp với các menu khác ở sidebar admin0
menu_iconstringIcon ở sidebar adminnull
parentbooleanNếu true cate type sẽ có phân cấp danh mụctrue
supportsarrayCấu hình hiển thị các metabox và field trong trang thêm (cập nhật) bài viết
capabilitiesarrayCác quyền mà post type cung cấp cho người dùngLấy của post

Tham số supports bao gồm:

Group:: danh sách các Metabox sẽ hiển thị

  • info: Group thông tin bao gồm các field (title, excerpt, content)
  • media: Group media bao gồm các field (image)
  • seo: Group seo bao gồm các field (slug, seo_title, seo_keywords, seo_description)
  • theme: Group Template bao gồm các field (theme_layout, theme_view)

Field:: danh sách các Field sẽ hiển thị

  • name: tiêu đề bài viết
  • excerpt: mô tả ngắn
  • content: nội dung chi tiết
  • image: ảnh đại diện
  • slug, seo_title, seo_keywords, seo_description : các trường thông tin seo
  • theme_layout, theme_view : các trường cấu hình template
$label = [
'name' => 'Các loại dự án',
'singular' => 'Loại dự án',
];

$supports = [
'group' => ['info', 'media', 'seo', 'theme'],
'field' => [
'title', 'excerpt', 'content', 'image', 'public', 'slug',
'seo_title', 'seo_keywords', 'seo_description', 'theme_layout', 'theme_view'
]
];

$args = [
'labels' => $label, //Gọi các label trong biến $label ở trên
'public' => true, //Kích hoạt post type
'show_in_nav_menus' => true, //hiển thị bên trang quản lý menu.
'show_in_nav_admin' => true, //Hiển thị trên thanh Admin bar màu đen.
'parent' => true,
'supports' => $supports,
'capabilities' => [
'edit' => 'manage_categories',
'delete' => 'delete_categories',
]
];
Taxonomy::addCategory('category_project', 'project', $args);

Taxonomy::getCategory

Lấy thông tin của cate type đã được đăng ký vào hệ thống

Tham số truyền vào bao gồm:

::getCategory($cate_type)
Taxonomy::getCategory('post_categories');

Taxonomy::getCategoryByPost

Lấy danh sách cate type thuộc một post type

Taxonomy::getCategoryByPost('post')

Taxonomy::hasCategory

Kiểm tra cate type có được đăng ký chưa nếu có trả về true ngược lại là false

Taxonomy::hasCategory($cate_type)

Taxonomy::removeCategory

Gở bỏ cate type khỏi hệ thống.

if(Taxonomy::hasCategory($cate_type)) {
Taxonomy::removeCategory($cate_type)
}