wordpress ကို အစက blog ဖန္တီးရန္အတြက္ အဓိက ရည္ရြယ္ခဲ႔ေသာ္လည္း သူရဲ႕ အားသာခ်က္ ေလ႔လာရလြယ္ကူမႈ ဖန္တီးရျမန္ဆန္မႈေတြေၾကာင့္ သူ႔ကို CMS တစ္ခုအသြင္နဲ႔ အသံုးျပဳလာၾကပါတယ္။
ပံုမွန္ blog တစ္ခုဟာ blog post ေရးဖုိ႔ရယ္၊ blog အေၾကာင္း page အခ်ိဳ႕ေရးဖို႔ဆိုရင္ လံုေလာက္သေလာက္ရွိေနပါျပီ။ ဒါေပမယ့္ တကယ့္ CMS တစ္ခုျဖစ္လာမယ္ဆိုရင္ ဒီထက္ပိုလိုအပ္လာပါတယ္။
ဥပမာ ေက်ာင္းတစ္ေက်ာင္း website ကို CMS ထည့္မယ္ဆိုရင္ course , branch, class, teacher, news, events, article, blog စသျဖင့္ ခြဲျခား ထည့္သြင္းဖုိ႔လိုအပ္လာပါတယ္။
အဲဒီလိုအေျခအေနမွာ post အမိ်ဳးအစားတစ္ခုထဲနဲ႔ အဲဒါေတြအားလံုး ထည့္သြငး္မယ္ဆိုရင္ category ခြဲျပီး ေဖာ္ျပတာမ်ိဳးမွာပဲ အဆင္ေျပမယ္။ဒါေပမယ္႔ user အတြက္ အ၇မ္းရႈပ္ေထြးေစပါတယ္။
wordpress မွာ ပါ၀င္ျပီးသား post type ေတြကေတာ႔
- post
- page
- attachment
- revision
- Nav menu
post ဆိုတာေတာ႔ wordpress သံုးဖူးသူတိုင္းသိၾကပါတယ္။ page လဲ သိၾကမယ္ထင္ပါတယ္။ attachment ဆိုတာေတာ႔ post တစ္ခုမွာ အသံုးျပဳမယ့္ ပံု (သို႔) file ေတြကို attachment အေနနဲ႔သိမ္းပါတယ္။revision ဆိုတာကေတာ႔ post တို႔ page တို႔ကို draft အေနနဲ႔ save လုပ္တဲ႔အခါသံုးပါတယ္။
nav menu ကေတာ႔ရွင္းပါတယ္ navigation menu ေတြပါ။အဲဒီ post type ေတြအားလံုးကို database ၇ဲ႔ post table ထဲမွာ ပဲသိမ္းဆည္းပါတယ္။ ဒါေၾကာင့္ wodpress ၇ဲ႕ database က content အရမ္းမ်ားမယ့္ website တစ္ခုအတြက္ဆို ေရရွည္မွာ maintance အတြက္ ခက္ခဲႏိုင္ပါတယ္။ဒါေပမယ့္ တျခားအားသာခ်က္ေတြရွိေနေတာ႔ content အရမ္းမမ်ားဘူးဆိုရင္ ဒါကို လစ္လ်ဴရႈထားႏိုင္ပါတယ္။
post နဲ႔ page ေလာက္ပဲ အဓိကသိထားရင္ အဆင္ေျပပါတယ္။ က်န္တာေတြက wordpress ကထိန္းခ်ဳပ္တာဆိုေတာ႔ မသိလဲအဆင္ေျပပါတယ္။ဒါဆို ကြ်န္ေတာတို႔က wordpress မွာ school website တစ္ခုကို ဖန္တီးျပီဆိုပါဆို႔။ ဒါဆို လိုအပ္လာမယ့္ post type ေတြက
- post(blog)
- page (about us page, contact us page, profile page)
- course
- branch
- class
- teacher
- news
- events
- article
ဒါဆို လိုအပ္လာမယ့္ အသစ္ post type ေတြက 3 ကေန 9 အထိ 7 ခု ထပ္ေဆာက္ေပးရပါတယ္။အဲလို ကိုယ့္စိတ္ၾကိဳက္ post type တည္ေဆာက္တာကို custom post type တည္ေဆာက္တယ္လို႔ေခၚပါတယ္။
ဒါဆို post type အသစ္ ဘယ္လိုတည္ေဆာက္လဲ ၾကည့္ၾကရေအာင္
function my_custom_post_product() { $args = array(); register_post_type( 'product', $args ); } add_action( 'init', 'my_custom_post_product' );
add_action ကို အရင္ရွင္းျပပါမယ္။ wordpress မွာ စတင္ run တဲ႔အခ်ိန္ကစျပီး ေနာက္ဆံုး user ကို display ျပတဲ႔အခ်ိန္အထိ ၾကားထဲမွာ အဆင့္မ်ားစြာရွိပါတယ္။ wordpress စတင္ load ေခၚသည့္ point
database access လုပ္သည့္ point ၊ post တစ္ခု ကို save လုပ္တဲ႔ point စသျဖင့္ hook point မ်ားစြာသတ္မွတ္ထားပါတယ္။
init ကေတာ႔ wordpress ရဲ႕ code ေတြ load ေခၚလို႔ အျပီး http header output မထြက္မီ hook point မွာအလုပ္လုပ္ေစခ်င္တဲ႔အတြက္ add_action function မွာ action tag ကို init တို႔ေပးထားျခင္းျဖစ္ပါတယ္။ ဆိုလိုတာကေတာ႔ wordpress core process အားလံုး ျပီးသြားတဲ႔အခ်ိန္လို႔လည္း အလြယ္မွတ္ထားႏိုင္ပါတယ္။
init point မတုိင္ခင္ regsiter_post_type function ကို သံုးမိရင္ အလုပ္လုပ္မွာမဟုတ္ပါဘူး။အဲေနာက္မွာေခၚမိရင္လည္း မွန္မွန္ကန္ကန္ အလုပ္မလုပ္ပါဘူး။
အဲဒီ init hook point ေရာက္တဲ႔ အခ်ိန္မွာ add_action ေၾကာင့္ ေနာက္ထပ္ custom post type တည္ေဆာက္ေပးမယ့္ my_custom_post_type function ကို run ခုိင္းတာျဖစ္ပါတယ္။ဒါေၾကာင့္ add_action ၇ဲ႕ 2nd argument မွာ 'my_custom_post_product' လို႔ ေရးထားတာျဖစ္ပါတယ္။
custom post type ကိုအဓိက တည္ေဆာက္ေပးတဲ႔ function ကေတာ႔ register_post_type function ပဲျဖစ္ပါတယ္။
အထက္က code ကို ၾကည့္ရင္ register_post_type function မွာ argument ႏွစ္ခုပဲေပးရတာေတြ႔ပါလိမ္႔မယ္။ပထမ argument က custom post type name ျဖစ္ပါတယ္။ ဒုတိယ argument ကေတာ႔ အဲဒီ post type အတြက္ လိုအပ္မယ့္ အခ်က္အလက္ေတြျဖစ္ပါတယ္ ၊ array type အေနနဲ႔ ေပးရမွာျဖစ္ပါတယ္။
ပထမ argument ကလြယ္ကူရွင္းလင္းပါတယ္။ ဒုတိယ argument ကေတာ႔ အမ်ားၾကီးရွင္းျပစရာရွိပါတယ္။
ဒါေပမယ့္ အဓိက လိုအပ္မယ့္ အပိုင္းေတြကိုအရင္ရွင္းျပပါမယ္။ ဒုတိယ argument မွာ array အေနနဲ႔ ေပးရမယ့္ argument အမ်ားအျပားရွိေပမယ့္ အားလံုးဟာ သာမန္အားျဖင့္မလိုအပ္ပါဘူး။ သက္ဆိုင္တဲ႔ အေျခအေနတစ္ခု အတြက္ပဲ အသံုးျပဳရန္ျဖစ္ပါတယ္။ ဒါဆို လိုအပ္တဲ႔ argument ေတြကို ၾကည့္ရေအာင္။
1. Label
2. public
3. support
function my_custom_post_product() { $args = array( 'labels' => array( 'name' => 'Slideshows', 'singular_name' => 'Slideshow', ), 'public' => true, 'supports' => array( 'title' ,'thumbnail', 'editor' ), ); register_post_type( 'product', $args ); } add_action( 'init', 'my_custom_post_product' );label ကေတာ႔ အဲဒီ post type ဟာ admin panel ရဲ႕ left menu မွာ ေပၚလာတဲ႔အခါ ေပၚရမည့္ နာမည္ကို assign လုပ္ေပးျခင္းျဖစ္ပါတယ္။
အထက္က code မွာဆိုရင္ေတာ႔ Slideshows လို႔ေပးထားပါတယ္ plural အေနနဲ႔ ေပးရပါတယ္။ singular name ကို သံုးဖို႔ အတြက္ singular_name အေနနဲ႔ ေပးထားရပါတယ္။
public ကို လည္း true ေပးထားရပါမယ္။ ဒါမွ front end မွာ ေဖာ္ျပလို႔ရမွာျဖစ္ပါတယ္။admin menu မွာလည္း ေပၚလာမွာျဖစ္ပါတယ္။
support ဆိုတာကေတာ႔ အဲဒီ post type ကေနအသံုးျပဳ ႏိုင္မယ့္ field ေတြကို ဆိုလိုပါတယ္။ support ကို မသံုးခဲ႔ဘူးဆိုရင္ default အေနနဲ႔ title နဲ႔ editor ပဲသံုးခြင့္ရမွာျဖစ္ပါတယ္။
အဲဒီ field ႏွစ္ခုထက္ပိုသံုးခ်င္တယ္ဆိုရင္ေတာ႔ support ကို အသံုးျပဳျပီး ထပ္ထည့္ေပးရမွာျဖစ္ပါတယ္။
အထက္က code ထဲမွာေတာ႔ title နဲ႔ editor အျပင္ thumbnail ကို ထပ္ထည့္ထားပါတယ္။အဲဒါဆိုရင္ အဲဒီ post type မွာ feature image အသံုးျပဳလုိ႔ရသြားပါျပီ။သံုးလို႔ရတဲ႔ field ေတြကေတာ႔
- 'title'
- 'editor' (content)
- 'author'
- 'thumbnail' (featured image)
- 'excerpt'
- 'trackbacks'
- 'custom-fields'
- 'comments' (also will see comment count balloon on edit screen)
- 'revisions' (will store revisions)
- 'page-attributes' (menu order, hierarchical must be true to show Parent option)
- 'post-formats' add post formats
ဒီေလာက္ဆိုရင္ custom post type တစ္ခုကို အလြယ္တကူဖန္တီးလို႔ရပါျပီ။ အေသးစိတ္ကိုေတာ႔ wordpress reference site မွာ ဖတ္ရႈႏိုင္ပါတယ္။
custom post type လုပ္တတ္ရံုနဲ႔ လဲ မျပည့္စံုေသးပါဘူး။ အဲဒီ post type မွာ အသံုးျပဳႏိုင္တဲ႔ field ေတြက အထက္မွာျပထားတဲ႔ 11 ခုပဲရွိပါတယ္။ အဲဒီထက္လိုအပ္လာတဲ႔အခါမွာ custome field (meta data) ကို အသံုးျပဳရပါတယ္။ ဘယ္လိုလုပ္တယ္ဆိုတာေတာ႔ ေနာက္ post တစ္ခု မွရွင္းျပပါမယ္။

EmoticonEmoticon