Sau khi cài đặt WordPress thìmặcđịnhhệthốngsẽcungcấpchobạn 2 kiểuđịnhdạngbàiviếtlà Post & Page, tuynhiênnếunhucầucủabạnmuốnsửdụngnhiềukiểu Posts, vídụnhưmuốnđưalên website mộtsảnphẩmnàođóthìbắtbuộcbạnphảitạomộtkiểuđịnhdạngmới (Post Type) tươngứngvớinhữnggìmàbạnđangmongmuốn ,vàcáikiểuđịnhdạngmớinày hay cònđượcgọilà Custom Post Type. Vớikiểuđịnhdạngmớithìbạnhoàntoànsửdụnglạiđượcnhữngtínhnăngnhưlà category, tags, featured images. Đâylàmộtphầnkhálàquantrọngđốivớimột Developer WordPress, trongbàinàytôisẽhướngdẫnbạn Sửdụng WordPress Custom Post Type cănbản.
1/ Cấutrúc plugin kenshin post
Việctạo ra cáckiểu Custom Post type rấtlàđơngiảnvìcómộtsốcôngcụgiúpbạnkhôngcầnviết code vẫntạo ra đượccáckiểu Post mớimộtcáchnhanhchóng. Tuynhiêntrongbàitôisẽkhônghướngdẫnbạntheocáchđó, vìđúngvớitiêuchímà Series đề ra làbạnsẽtừngbướclậptrìnhvàgõtừngdòng code đểtạo ra nhữngthứliênquantớihệthống WordPress.
Tôisẽtạomớimộtkiểuđịnhdạngtươngtựnhưkiểu Post nhưngphần slug củanósẽcótênlà kproduct.
cau-truc-plugin-kenshin-post
2/ Phươngthứcregister_post_type()
Đểcóthểkhaibáomột Custom Post Type thìtrướctiênbạncầnphảitìmhiểuphươngthức register_post_type() đâylàphươngthứcdùngđểđăngkývànạp Custom Post Type màbạnmuốntạovàohệthống WordPress.
Phươngthứccótấtcảlàhaithamsố, thamsốđầutiênlàtên slug vàthamsốthứhailàmộtmảngchứacáckhaibáo lien quantới Custom Post.
Cúpháp:
1
register_post_type('slug',$args);
Thamsố:
· $slug: Tên slug màbạnđặtđểxácđịnhkiểuđịnhdạng post.
· $args: Mảngchứacácthông tin khaibáoliênquantới Custom Post.
Vìlúcnàybạnvẫnchưatruyềncácthamsốvàomảng $args thìlàmsaonócódữliệumàhiểnthị ra chứ. Nhưngbạncầnphảivàođường dẫn http://codex.wordpress.org/Function_Reference/register_post_type đểtìmhiểuvềcácthamsốquantrọnglàmnênmột Custom Post.
3/ Cácthamsốdùngđểtạo Custom Post Type
Trướctiêntôisẽkhaibáotên Post Type dạngsốnhiềuvàsốítvớihaithamsốđầutiênlà name &singular_name vàsửdụngthamsố menu_icon đểthayđổibiểutượng menu luôn.
Vàđâylàkếtquảsaukhitôi run đoạn code trên.
Giảithích: Phầnthamsố labels chínhláphầnkhaibáotênhiểnthị Custom Post trongvùng admin, bao gồmcácgiátrịkhácmàtôisắptrìnhbày ở phíadưới.
kproduct-menu-admin
Bạnchú ý phần slug màtôitôđỏtronghìnhnha, bạncóthấylàkiểu post_type=kproduct và ở phíadướicóđầyđủtínhnăngđể post mớimộtbàiviếtgiốngnhưhaikiểu Post & Page.
Tiếptheotôisẽthayđổimộtsốgiátrịnửađểnóphùhợpvớikiểu Custom Post màtôiđangxâydựngvàtôibổ sung code nhưsau.
Bạntựthayđổiđườngdẫnchophùhợpvớithưmụcchứa source WordPress củabạnnha. Tạmổnrồiđấynhưngmọithứchưadừnglạiđâu, vì ở bài custom post type nângcao tôisẽhướngdẫnbạnlàmnhiềuthứthúvịvàhấpdẫnhơn.
4/ Lờikết
Hy vọngthông qua bài Sửdụng WordPress Custom Post Type cănbản thìbạnđãphầnnàobiếtcáchtạomớicáckiểuđịnhdạng bàiviếttheo ý đồcủariêngbạn, tuynhiênđểlàmđượcđiềunàythìbạncầnphảinắmvữngmộtsốkiếnthứcmàtôiđãtrìnhbày ở cácbàitrước, ápdụngtoànbộkiếnthứcđóđểtạoriêngchomìnhmộtkiểubàiviếtmới. Vàtôicũngxinnóiluônlàkểtừbàinàythìmứcđộkhósẽtăngdần, cácbạnchuẩnbịdầntâmlýđilàvừa.
<?php
class Kenshin_Custom_Post_Product{
public function __construct(){
add_action('init', array($this, 'create'));
}
public function create(){
$args = array(); // Cácthamsốquantrọngđốivới Custom Post
register_post_type('kproduct', $args); // Phươngthứcđăngký&nạp custom post vàohệthống.
}
}
class Kenshin_Custom_Post_Product {
public function __construct() {
add_action('init', array($this, 'create'));
}
public function create() {
$labels = array(
'name' => 'Products',
'singular_name' => 'Product',
);
$args = array(
'labels' => $labels,
'description' => 'Đâylà Custom Post Type KProduct',
'menu_icon' => KENSHIN_POST_IMAGES_URL . '/icon-setting16x16.png',
'public' => true,
);
register_post_type('kproduct', $args); // Phươngthứcđăngký&nạp custom post vàohệthống.
}
}
<?php
class Kenshin_Custom_Post_Product {
public function __construct() {
add_action('init', [
$this,
'create',
]);
}
public function create() {
$labels = [
'name' => 'Products',
'add_new' => 'Add Product',
'add_new_item' => 'Add New Product',
'search_items' => 'Search Product',
'view_item' => 'View product',
'edit_item' => 'Edit product',
'singular_name' => 'Product',
];
$args = [
'labels' => $labels,
'description' => 'Đâylà Custom Post Type KProduct',
'menu_icon' => KENSHIN_POST_IMAGES_URL . '/icon-setting16x16.png',
'public' => true,
'hierarchical' => true,
];
register_post_type('kproduct', $args); // Phươngthứcđăngký&nạp custom post vàohệthống.
}
}