{"id":12360787,"date":"2026-03-11T05:16:38","date_gmt":"2026-03-10T21:16:38","guid":{"rendered":"https:\/\/www.likacloud.com\/knowledge\/%e7%9c%9f%e9%a6%99%ef%bc%81wordpress-%e8%87%aa%e5%ae%9a%e4%b9%89%e6%96%87%e7%ab%a0%e7%b1%bb%e5%9e%8b%e7%bb%88%e6%9e%81%e6%8c%87%e5%8d%97%ef%bc%9a%e4%bb%8e%e9%9b%b6%e5%88%b0%e7%b2%be%e9%80%9a\/"},"modified":"2026-06-04T06:24:04","modified_gmt":"2026-06-03T22:24:04","slug":"wordpress-custom-post-types-ultimate-guide","status":"publish","type":"knowledge_post","link":"https:\/\/www.likacloud.com\/vi\/knowledge\/wordpress\/wordpress-custom-post-types-ultimate-guide\/","title":{"rendered":"Th\u1eadt tuy\u1ec7t! H\u01b0\u1edbng d\u1eabn t\u1ed1i \u01b0u v\u1ec1 lo\u1ea1i b\u00e0i vi\u1ebft t\u00f9y ch\u1ec9nh WordPress: T\u1eeb c\u01a1 b\u1ea3n \u0111\u1ebfn th\u00e0nh th\u1ea1o"},"content":{"rendered":"<h2 class=\"wp-block-heading\">WordPress Custom Post Type l\u00e0 g\u00ec?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress c\u00f3 s\u1eb5n hai lo\u1ea1i n\u1ed9i dung m\u1eb7c \u0111\u1ecbnh l\u00e0 \u201cB\u00e0i vi\u1ebft\u201d (Article) v\u00e0 \u201cTrang\u201d (Page), nh\u01b0ng \u0111\u00f4i khi ch\u00fang kh\u00f4ng \u0111\u00e1p \u1ee9ng \u0111\u01b0\u1ee3c nh\u1eefng y\u00eau c\u1ea7u v\u1ec1 c\u1ea5u tr\u00fac trang web ph\u1ee9c t\u1ea1p. T\u00ednh n\u0103ng \u201cLo\u1ea1i b\u00e0i vi\u1ebft t\u00f9y ch\u1ec9nh\u201d (Custom Post Type \u2013 CPT) l\u00e0 m\u1ed9t trong nh\u1eefng t\u00ednh n\u0103ng c\u1ed1t l\u00f5i c\u1ee7a WordPress, cho ph\u00e9p nh\u00e0 ph\u00e1t tri\u1ec3n t\u1ea1o ra c\u00e1c lo\u1ea1i n\u1ed9i dung m\u1edbi v\u1edbi c\u1ea5u tr\u00fac d\u1eef li\u1ec7u, giao di\u1ec7n qu\u1ea3n l\u00fd v\u00e0 logic hi\u1ec3n th\u1ecb ri\u00eang bi\u1ec7t. B\u1ea1n c\u00f3 th\u1ec3 hi\u1ec3u n\u00f3 nh\u01b0 m\u1ed9t \u201ckhung\u201d \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf ri\u00eang cho t\u1eebng lo\u1ea1i n\u1ed9i dung c\u1ee5 th\u1ec3, ch\u1eb3ng h\u1ea1n nh\u01b0 s\u1ea3n ph\u1ea9m, b\u1ed9 s\u01b0u t\u1eadp t\u00e1c ph\u1ea9m, s\u1ef1 ki\u1ec7n, s\u00e1ch, v.v.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sau khi b\u1eadt t\u00ednh n\u0103ng CPT (Custom Post Type), trang qu\u1ea3n tr\u1ecb WordPress c\u1ee7a b\u1ea1n s\u1ebd t\u1ea1o ra c\u00e1c m\u1ee5c menu ri\u00eang bi\u1ec7t, m\u1ed7i m\u1ee5c c\u00f3 ch\u1ee9c n\u0103ng li\u1ec7t k\u00ea, ch\u1ec9nh s\u1eeda v\u00e0 \u0111\u0103ng b\u00e0i t\u01b0\u01a1ng t\u1ef1 nh\u01b0 m\u00f4-\u0111un \u201cB\u00e0i vi\u1ebft\u201d g\u1ed1c. Tuy nhi\u00ean, d\u1eef li\u1ec7u c\u1ee7a c\u00e1c m\u1ee5c n\u00e0y ho\u00e0n to\u00e0n t\u00e1ch bi\u1ec7t v\u1edbi d\u1eef li\u1ec7u c\u1ee7a c\u00e1c b\u00e0i vi\u1ebft v\u00e0 trang th\u00f4ng th\u01b0\u1eddng. V\u00ed d\u1ee5, m\u1ed9t trang web th\u01b0\u01a1ng m\u1ea1i \u0111i\u1ec7n t\u1eed c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng m\u00f4-\u0111un \u201cB\u00e0i vi\u1ebft\u201d \u0111\u1ec3 \u0111\u0103ng c\u00e1c b\u00e0i blog, \u0111\u1ed3ng th\u1eddi t\u1ea1o m\u1ed9t CPT c\u00f3 t\u00ean \u201cS\u1ea3n ph\u1ea9m\u201d \u0111\u1ec3 qu\u1ea3n l\u00fd th\u00f4ng tin v\u1ec1 t\u1ea5t c\u1ea3 c\u00e1c s\u1ea3n ph\u1ea9m. C\u00e1c m\u1ee5c n\u00e0y kh\u00f4ng \u1ea3nh h\u01b0\u1edfng l\u1eabn nhau trong qu\u00e1 tr\u00ecnh qu\u1ea3n tr\u1ecb, v\u00e0 giao di\u1ec7n hi\u1ec3n th\u1ecb tr\u00ean trang web c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf theo nh\u1eefng phong c\u00e1ch v\u00e0 b\u1ed1 c\u1ee5c kh\u00e1c nhau.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00f3i m\u1ed9t c\u00e1ch ng\u1eafn g\u1ecdn, CPT (Custom Post Type) \u0111\u00e3 ph\u00e1 v\u1ee1 nh\u1eefng h\u1ea1n ch\u1ebf c\u1ee7a WordPress nh\u01b0 m\u1ed9t n\u1ec1n t\u1ea3ng blog truy\u1ec1n th\u1ed1ng, cho ph\u00e9p x\u00e2y d\u1ef1ng nhi\u1ec1u lo\u1ea1i trang web kh\u00e1c nhau nh\u01b0 c\u00e1c trang tin t\u1ee9c, c\u1eeda h\u00e0ng tr\u1ef1c tuy\u1ebfn, trang web doanh nghi\u1ec7p, di\u1ec5n \u0111\u00e0n c\u1ed9ng \u0111\u1ed3ng m\u1ed9t c\u00e1ch linh ho\u1ea1t, m\u00e0 kh\u00f4ng c\u1ea7n ph\u1ee5 thu\u1ed9c v\u00e0o c\u00e1c plugin b\u00ean th\u1ee9 ba ph\u1ee9c t\u1ea1p c\u00f3 th\u1ec3 g\u00e2y \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn hi\u1ec7u su\u1ea5t. \u0110\u00e2y l\u00e0 c\u00f4ng ngh\u1ec7 then ch\u1ed1t gi\u00fap c\u1ea5u tr\u00fac n\u1ed9i dung trang web tr\u1edf n\u00ean r\u00f5 r\u00e0ng v\u00e0 qu\u1ea3n l\u00fd hi\u1ec7u qu\u1ea3 h\u01a1n.<\/p>\n<!-- AUTO_INTERNAL_LINKS_START --><p>\u0110\u1ecdc th\u00eam <a href=\"https:\/\/www.likacloud.com\/vi\/knowledge\/wordpress\/wordpress-theme-development-customization-guide\/\">T\u1ea1o website chuy\u00ean nghi\u1ec7p b\u1eaft bu\u1ed9c: H\u01b0\u1edbng d\u1eabn to\u00e0n di\u1ec7n v\u1ec1 ph\u00e1t tri\u1ec3n v\u00e0 t\u00f9y ch\u1ec9nh ch\u1ee7 \u0111\u1ec1 WordPress<\/a>\u3002<\/p><!-- AUTO_INTERNAL_LINKS_END -->\n\n\n\n\n<h2 class=\"wp-block-heading\">T\u1ea1i sao n\u00ean s\u1eed d\u1ee5ng c\u00e1c lo\u1ea1i b\u00e0i vi\u1ebft t\u00f9y ch\u1ec9nh (custom article types)?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n trang web, vi\u1ec7c s\u1eafp x\u1ebfp n\u1ed9i dung m\u1ed9t c\u00e1ch h\u1ee3p l\u00fd ch\u00ednh l\u00e0 y\u1ebfu t\u1ed1 then ch\u1ed1t quy\u1ebft \u0111\u1ecbnh s\u1ef1 th\u00e0nh c\u00f4ng c\u1ee7a d\u1ef1 \u00e1n. Khi n\u1ed9i dung trang web ng\u00e0y c\u00e0ng tr\u1edf n\u00ean ph\u1ee9c t\u1ea1p, vi\u1ec7c nh\u1ed3i nh\u00e9t t\u1ea5t c\u1ea3 th\u00f4ng tin v\u00e0o c\u00e1c b\u00e0i vi\u1ebft ho\u1eb7c trang web s\u1ebd g\u00e2y ra nhi\u1ec1u v\u1ea5n \u0111<\/p>\n<!-- AUTO_SYNCED_PATTERN_INSERT_START -->\n\r\n<div class=\"flex justify-between items-center flex-col lg:flex-row xl:flex-col 2xl:flex-row gap-6 sm:gap-8 rounded-lg border border-gray-200 dark:border-gray-700 p-4 mb-8 lg:mb-10 sm:p-6 bg-white dark:bg-gray-750 shadow-md transition-colors duration-300\"\r\n     data-link=\"https:\/\/www.likacloud.com\/vi\/tolink\/ultahost-wordpress-hosting\/\">\r\n     \r\n  <div class=\"flex flex-col gap-3 gap-4 sm:gap-6 w-full\">\r\n    <strong class=\"text-2xl font-semibold text-gray-900 dark:text-gray-200\">\r\n      UltaHost \u2013 Nh\u00e0 cung c\u1ea5p d\u1ecbch v\u1ee5 m\u00e1y ch\u1ee7 WordPress chuy\u00ean nghi\u1ec7p    <\/strong>\r\n    <div class=\"text-gray-600 dark:text-gray-300 word-word\">B\u1ea3o \u0111\u1ea3m ho\u00e0n ti\u1ec1n trong 30 ng\u00e0y, b\u0103ng th\u00f4ng v\u00e0 c\u01a1 s\u1edf d\u1eef li\u1ec7u kh\u00f4ng gi\u1edbi h\u1ea1n, b\u1ea3o v\u1ec7 DDoS mi\u1ec5n ph\u00ed, mua 3 n\u0103m \u01b0u \u0111\u00e3i 50%<\/div>\r\n  <\/div>\r\n\r\n  <div class=\"flex items-center flex-col md:flex-row lg:flex-col xl:flex-row 2xl:flex-col gap-6 shrink-0\">\r\n          <a href=\"https:\/\/www.likacloud.com\/vi\/tolink\/ultahost-wordpress-hosting\/\">\r\n                  <img decoding=\"async\" src=\"https:\/\/www.likacloud.com\/wp-content\/uploads\/2025\/12\/20251227020448.webp\" alt=\"Logo UltaHost\" class=\"content-promotion-card-icon h-9 min-h-9 dark:hidden\" title=\"\">\r\n          <img decoding=\"async\" src=\"https:\/\/www.likacloud.com\/wp-content\/uploads\/2025\/12\/20251229052118.webp\" alt=\"Logo UltaHost\" class=\"content-promotion-card-icon h-9 min-h-9 hidden dark:block\" title=\"\">\r\n              <\/a>\r\n    \r\n    <a href=\"https:\/\/www.likacloud.com\/vi\/tolink\/ultahost-wordpress-hosting\/\"\r\n       class=\"bg-blue-500 w-full md:w-auto lg:w-full xl:w-auto 2xl:w-full text-center !text-white dark:!text-gray-200 !px-5 !py-1.5 rounded-full hover:bg-blue-600 transition-colors\">\r\n       Truy c\u1eadp trang    <\/a>\r\n  <\/div>\r\n<\/div>\n<!-- AUTO_SYNCED_PATTERN_INSERT_END -->\n\n\n\n\n\n<p class=\"wp-block-paragraph\">\u0110\u1ea7u ti\u00ean l\u00e0 s\u1ef1 ti\u1ec7n l\u1ee3i trong qu\u1ea3n l\u00fd v\u00e0 b\u1ea3o tr\u00ec. Khi t\u1ea5t c\u1ea3 n\u1ed9i dung \u0111\u01b0\u1ee3c tr\u1ed9n l\u1eabn v\u1edbi nhau, vi\u1ec7c qu\u1ea3n tr\u1ecb vi\u00ean trang web t\u00ecm ki\u1ebfm m\u1ed9t m\u1ee5c c\u1ee5 th\u1ec3 ho\u1eb7c th\u1ef1c hi\u1ec7n c\u00e1c thao t\u00e1c h\u00e0ng lo\u1ea1t tr\u1edf n\u00ean r\u1ea5t kh\u00f3 kh\u0103n. V\u00ed d\u1ee5, m\u1ed9t lo\u1ea1i n\u1ed9i dung \u201cs\u1ef1 ki\u1ec7n\u201d c\u00f3 th\u1ec3 bao g\u1ed3m c\u00e1c tr\u01b0\u1eddng d\u1eef li\u1ec7u nh\u01b0 \u201cng\u00e0y di\u1ec5n ra s\u1ef1 ki\u1ec7n\u201d, \u201c\u0111\u1ecba \u0111i\u1ec3m s\u1ef1 ki\u1ec7n\u201d, \u201cli\u00ean k\u1ebft \u0111\u0103ng k\u00fd\u201d, v.v.; vi\u1ec7c qu\u1ea3n l\u00fd ch\u00fang c\u00f9ng v\u1edbi c\u00e1c b\u00e0i vi\u1ebft blog th\u00f4ng th\u01b0\u1eddng s\u1ebd g\u00e2y ra s\u1ef1 l\u1ed9n x\u1ed9n. Vi\u1ec7c t\u1ea1o ra c\u00e1c lo\u1ea1i n\u1ed9i dung ri\u00eang bi\u1ec7t (CPT \u2013 Content Type) cho t\u1eebng lo\u1ea1i n\u1ed9i dung \u0111\u00f3 s\u1ebd gi\u00fap ch\u00fang c\u00f3 nh\u1eefng giao di\u1ec7n ri\u00eang bi\u1ec7t \u0111\u1ec3 \u0111\u0103ng, ch\u1ec9nh s\u1eeda v\u00e0 l\u1ecdc n\u1ed9i dung, t\u1eeb \u0111\u00f3 n\u00e2ng cao \u0111\u00e1ng k\u1ec3 hi\u1ec7u qu\u1ea3 c\u00f4ng vi\u1ec7c qu\u1ea3n tr\u1ecb t\u1eeb ph\u00eda h\u1eadu c\u1ea7n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ti\u1ebfp theo l\u00e0 t\u00ednh r\u00f5 r\u00e0ng v\u00e0 kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng c\u1ee7a c\u1ea5u tr\u00fac d\u1eef li\u1ec7u. C\u00e1c b\u00e0i vi\u1ebft v\u00e0 trang trong WordPress s\u1eed d\u1ee5ng c\u00e1c b\u1ea3ng d\u1eef li\u1ec7u v\u00e0 tr\u01b0\u1eddng d\u1eef li\u1ec7u chung. Trong khi \u0111\u00f3, CPT (Custom Post Type) cho ph\u00e9p b\u1ea1n \u0111\u1ecbnh ngh\u0129a c\u00e1c tr\u01b0\u1eddng ri\u00eang bi\u1ec7t cho t\u1eebng lo\u1ea1i n\u1ed9i dung c\u1ee5 th\u1ec3 (th\u00f4ng qua c\u00e1c tr\u01b0\u1eddng t\u00f9y ch\u1ec9nh ho\u1eb7c plugin t\u00f9y ch\u1ec9nh n\u00e2ng cao); nh\u1eefng d\u1eef li\u1ec7u n\u00e0y c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef, truy v\u1ea5n v\u00e0 s\u1eed d\u1ee5ng m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3 h\u01a1n. V\u00ed d\u1ee5, m\u1ed9t b\u00e0i vi\u1ebft thu\u1ed9c lo\u1ea1i \u201cphim\u201d trong CPT c\u00f3 th\u1ec3 ch\u1ee9a c\u00e1c tr\u01b0\u1eddng nh\u01b0 \u201c\u0110\u1ea1o di\u1ec5n\u201d, \u201cTh\u1eddi l\u01b0\u1ee3ng\u201d, \u201c\u0110i\u1ec3m \u0111\u00e1nh gi\u00e1\u201d, v.v., nh\u1eefng th\u00f4ng tin m\u00e0 trong lo\u1ea1i b\u00e0i vi\u1ebft \u201cb\u00ecnh th\u01b0\u1eddng\u201d c\u1ee7a WordPress th\u00ec kh\u00f4ng th\u1ec3 \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef m\u1ed9t c\u00e1ch c\u00f3 c\u1ea5u tr\u00fac r\u00f5 r\u00e0ng.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ngo\u00e0i ra, c\u00f2n c\u00f3 t\u00ednh linh ho\u1ea1t trong vi\u1ec7c hi\u1ec3n th\u1ecb tr\u00ean giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng (frontend). B\u1eb1ng c\u00e1ch t\u1ea1o c\u00e1c t\u1ec7p m\u1eabu (templates) ri\u00eang bi\u1ec7t cho t\u1eebng lo\u1ea1i CPT (Component Pattern Type), ch\u00fang ta c\u00f3 th\u1ec3 d\u1ec5 d\u00e0ng \u0111i\u1ec1u ch\u1ec9nh c\u00e1ch c\u00e1c th\u00e0nh ph\u1ea7n \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb tr\u00ean trang web t\u00f9y theo nhu c\u1ea7u c\u1ee5 th\u1ec3. <code data-no-auto-translation=\"\">single-{cpt-slug}.php<\/code> \u548c <code data-no-auto-translation=\"\">archive-{cpt-slug}.php<\/code>B\u1ea1n c\u00f3 th\u1ec3 ki\u1ec3m so\u00e1t ho\u00e0n to\u00e0n phong c\u00e1ch tr\u00ecnh b\u00e0y c\u1ee7a ch\u00fang tr\u00ean ph\u00eda tr\u01b0\u1edbc (frontend), t\u1ea1o ra nh\u1eefng hi\u1ec7u \u1ee9ng thi\u1ebft k\u1ebf ho\u00e0n to\u00e0n kh\u00e1c bi\u1ec7t so v\u1edbi c\u00e1c ph\u1ea7n kh\u00e1c c\u1ee7a trang web, m\u00e0 kh\u00f4ng c\u1ea7n ph\u1ea3i s\u1eed d\u1ee5ng c\u00e1c \u0111i\u1ec1u ki\u1ec7n ph\u1ee9c t\u1ea1p \u0111\u1ec3 ch\u1ec9nh s\u1eeda m\u1ed9t m\u1eabu duy nh\u1ea5t.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cu\u1ed1i c\u00f9ng l\u00e0 v\u1ea5n \u0111\u1ec1 v\u1ec1 hi\u1ec7u n\u0103ng v\u00e0 t\u1ed1i \u01b0u h\u00f3a truy v\u1ea5n. Khi th\u1ef1c hi\u1ec7n c\u00e1c truy v\u1ea5n v\u00e0o c\u01a1 s\u1edf d\u1eef li\u1ec7u, vi\u1ec7c truy v\u1ea5n d\u1eef li\u1ec7u li\u00ean quan \u0111\u1ebfn m\u1ed9t lo\u1ea1i n\u1ed9i dung c\u1ee5 th\u1ec3 (ch\u1eb3ng h\u1ea1n nh\u01b0 t\u1ea5t c\u1ea3 c\u00e1c \u201cs\u1ef1 ki\u1ec7n\u201d \u0111ang ch\u1edd x\u1eed l\u00fd) s\u1ebd hi\u1ec7u qu\u1ea3 h\u01a1n nhi\u1ec1u so v\u1edbi vi\u1ec7c th\u1ef1c hi\u1ec7n c\u00e1c thao t\u00e1c l\u1ecdc d\u1eef li\u1ec7u trong m\u1ed9t b\u1ea3ng l\u1edbn ch\u1ee9a \u0111\u1ee7 lo\u1ea1i n\u1ed9i dung kh\u00e1c nhau. \u0110i\u1ec1u n\u00e0y gi\u00fap c\u1ea3i thi\u1ec7n t\u1ed1c \u0111\u1ed9 t\u1ea3i trang v\u00e0 hi\u1ec7u n\u0103ng t\u1ed5ng th\u1ec3 c\u1ee7a trang web. \u0110\u00e2y l\u00e0 m\u1ed9t trong nh\u1eefng th\u1ef1c h\u00e0nh t\u1ed1t nh\u1ea5t \u0111\u1ec3 n\u00e2ng cao m\u1ee9c \u0111\u1ed9 chuy\u00ean nghi\u1ec7p v\u00e0 hi\u1ec7u n\u0103ng c\u1ee7a trang web WordPress t\u1eeb g\u00f3c \u0111\u1ed9 ki\u1ebfn tr\u00fac.<\/p>\n<!-- AUTO_INTERNAL_LINKS_START --><p>\u0110\u1ecdc th\u00eam <a href=\"https:\/\/www.likacloud.com\/vi\/knowledge\/website-building\/ultimate-guide-to-website-building-from-zero-to-professional-2026\/\">H\u01b0\u1edbng d\u1eabn t\u1ed1i th\u01b0\u1ee3ng \u0111\u1ec3 x\u00e2y d\u1ef1ng website: Quy tr\u00ecnh ho\u00e0n ch\u1ec9nh v\u00e0 c\u00e1c b\u01b0\u1edbc then ch\u1ed1t \u0111\u1ec3 t\u1ea1o m\u1ed9t trang web chuy\u00ean nghi\u1ec7p t\u1eeb con s\u1ed1 kh\u00f4ng<\/a>\u3002<\/p><!-- AUTO_INTERNAL_LINKS_END -->\n\n\n\n\n<h2 class=\"wp-block-heading\">L\u00e0m th\u1ebf n\u00e0o \u0111\u1ec3 t\u1ea1o lo\u1ea1i b\u00e0i vi\u1ebft t\u00f9y ch\u1ec9nh?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00f3 hai ph\u01b0\u01a1ng ph\u00e1p ch\u00ednh \u0111\u1ec3 t\u1ea1o CPT (Custom Post Type): \u0111\u0103ng k\u00fd b\u1eb1ng c\u00e1ch vi\u1ebft m\u00e3 ngu\u1ed3n v\u00e0 s\u1eed d\u1ee5ng c\u00e1c plugin chuy\u00ean d\u1ee5ng.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0110\u0103ng k\u00fd b\u1eb1ng m\u00e3 (ph\u01b0\u01a1ng ph\u00e1p \u0111\u01b0\u1ee3c khuy\u1ebfn ngh\u1ecb)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0110\u1ed1i v\u1edbi nh\u00e0 ph\u00e1t tri\u1ec3n, th\u00f4ng qua m\u00e3 code trong ch\u1ee7 \u0111\u1ec1 <code data-no-auto-translation=\"\">functions.php<\/code> \u0110\u0103ng k\u00fd CPT (Custom Post Type) trong t\u1ec7p tin l\u00e0 c\u00e1ch th\u1ee9c minh b\u1ea1ch v\u00e0 d\u1ec5 ki\u1ec3m so\u00e1t nh\u1ea5t. Ph\u01b0\u01a1ng ph\u00e1p n\u00e0y t\u1eadn d\u1ee5ng nh\u1eefng t\u00ednh n\u0103ng m\u00e0 WordPress cung c\u1ea5p. <code data-no-auto-translation=\"\">register_post_type()<\/code> \u0110\u00e2y l\u00e0 m\u1ed9t ph\u01b0\u01a1ng ph\u00e1p k\u1ebft h\u1ee3p c\u00e1c ch\u1ee9c n\u0103ng v\u1edbi c\u00e1c ch\u1ee7 \u0111\u1ec1 ho\u1eb7c ti\u1ec7n \u00edch m\u1edf r\u1ed9ng (plugins) t\u00f9y ch\u1ec9nh. Ph\u01b0\u01a1ng ph\u00e1p n\u00e0y gi\u00fap vi\u1ec7c di chuy\u1ec3n d\u1eef li\u1ec7u tr\u1edf n\u00ean d\u1ec5 d\u00e0ng h\u01a1n, v\u00e0 d\u1eef li\u1ec7u s\u1ebd kh\u00f4ng b\u1ecb m\u1ea5t \u0111i n\u1ebfu c\u00e1c ti\u1ec7n \u00edch \u0111\u00f3 ng\u1eebng ho\u1ea1t \u0111\u1ed9ng.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">D\u01b0\u1edbi \u0111\u00e2y l\u00e0 m\u1ed9t v\u00ed d\u1ee5 \u0111\u1ea7y \u0111\u1ee7 v\u1ec1 m\u00e3 CPT (Content Production Template) \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 t\u1ea1o m\u1ed9t s\u1ea3n ph\u1ea9m c\u00f3 t\u00ean \u201cB\u1ed9 s\u01b0u t\u1eadp t\u00e1c ph\u1ea9m\u201d (Portfolio):<\/p>\n<!-- AUTO_SYNCED_PATTERN_INSERT_START -->\n\r\n<div class=\"flex justify-between items-center flex-col lg:flex-row xl:flex-col 2xl:flex-row gap-6 sm:gap-8 rounded-lg border border-gray-200 dark:border-gray-700 p-4 mb-8 lg:mb-10 sm:p-6 bg-white dark:bg-gray-750 shadow-md transition-colors duration-300\"\r\n     data-link=\"https:\/\/www.likacloud.com\/vi\/tolink\/hosting-shared-hosting\/\">\r\n     \r\n  <div class=\"flex flex-col gap-3 gap-4 sm:gap-6 w-full\">\r\n    <strong class=\"text-2xl font-semibold text-gray-900 dark:text-gray-200\">\r\n      Hosting.com - l\u01b0u tr\u1eef chia s\u1ebb    <\/strong>\r\n    <div class=\"text-gray-600 dark:text-gray-300 word-word\">Hi\u1ec7u n\u0103ng cao, \u0111\u01b0\u1ee3c trang b\u1ecb CPU AMD EPYC, l\u01b0u tr\u1eef SSD NVMe v\u00e0 LiteSpeed, h\u1ed7 tr\u1ee3 chuy\u00ean gia n\u1ed9i b\u1ed9 24 gi\u1edd\/ng\u00e0y, c\u00e1c bi\u1ec7n ph\u00e1p b\u1ea3o m\u1eadt ti\u00ean ti\u1ebfn bao g\u1ed3m SSL, ch\u1ed1ng brute force, ph\u1ea7n m\u1ec1m \u0111\u1ed9c h\u1ea1i v\u00e0 b\u1ea3o v\u1ec7 DDoS, ti\u1ebft ki\u1ec7m t\u1edbi 73%.<\/div>\r\n  <\/div>\r\n\r\n  <div class=\"flex items-center flex-col md:flex-row lg:flex-col xl:flex-row 2xl:flex-col gap-6 shrink-0\">\r\n          <a href=\"https:\/\/www.likacloud.com\/vi\/tolink\/hosting-shared-hosting\/\">\r\n                  <img decoding=\"async\" src=\"https:\/\/www.likacloud.com\/wp-content\/uploads\/2025\/09\/20250901222940.svg\" alt=\"Logo c\u1ee7a Hosting.com\" class=\"content-promotion-card-icon h-9 min-h-9 dark:hidden\" title=\"\">\r\n          <img decoding=\"async\" src=\"https:\/\/www.likacloud.com\/wp-content\/uploads\/2025\/12\/20251228220957.webp\" alt=\"Logo c\u1ee7a Hosting.com\" class=\"content-promotion-card-icon h-9 min-h-9 hidden dark:block\" title=\"\">\r\n              <\/a>\r\n    \r\n    <a href=\"https:\/\/www.likacloud.com\/vi\/tolink\/hosting-shared-hosting\/\"\r\n       class=\"bg-blue-500 w-full md:w-auto lg:w-full xl:w-auto 2xl:w-full text-center !text-white dark:!text-gray-200 !px-5 !py-1.5 rounded-full hover:bg-blue-600 transition-colors\">\r\n       Truy c\u1eadp trang    <\/a>\r\n  <\/div>\r\n<\/div>\n<!-- AUTO_SYNCED_PATTERN_INSERT_END -->\n\n\n\n\n\n<pre class=\"wp-block-code\" data-no-auto-translation=\"\"><code class=\"language-php\" data-no-auto-translation=\"\">function create_portfolio_post_type() {\n    $labels = array(\n        &#039;name&#039;               =&gt; &#039;\u4f5c\u54c1\u96c6&#039;,\n        &#039;singular_name&#039;      =&gt; &#039;\u4f5c\u54c1&#039;,\n        &#039;menu_name&#039;          =&gt; &#039;\u4f5c\u54c1\u96c6&#039;,\n        &#039;add_new&#039;            =&gt; &#039;\u6dfb\u52a0\u65b0\u4f5c\u54c1&#039;,\n        &#039;add_new_item&#039;       =&gt; &#039;\u6dfb\u52a0\u65b0\u4f5c\u54c1&#039;,\n        &#039;edit_item&#039;          =&gt; &#039;\u7f16\u8f91\u4f5c\u54c1&#039;,\n        &#039;new_item&#039;           =&gt; &#039;\u65b0\u4f5c\u54c1&#039;,\n        &#039;view_item&#039;          =&gt; &#039;\u67e5\u770b\u4f5c\u54c1&#039;,\n        &#039;search_items&#039;       =&gt; &#039;\u641c\u7d22\u4f5c\u54c1&#039;,\n        &#039;not_found&#039;          =&gt; &#039;\u672a\u627e\u5230\u4f5c\u54c1&#039;,\n        &#039;not_found_in_trash&#039; =&gt; &#039;\u56de\u6536\u7ad9\u4e2d\u672a\u627e\u5230\u4f5c\u54c1&#039;\n    );\n\n$args = array(\n        &#039;labels&#039;             =&gt; $labels,\n        &#039;public&#039;             =&gt; true,\n        &#039;publicly_queryable&#039; =&gt; true,\n        &#039;show_ui&#039;            =&gt; true,\n        &#039;show_in_menu&#039;       =&gt; true,\n        &#039;query_var&#039;          =&gt; true,\n        &#039;rewrite&#039;            =&gt; array( &#039;slug&#039; =&gt; &#039;portfolio&#039; ),\n        &#039;capability_type&#039;    =&gt; &#039;post&#039;,\n        &#039;has_archive&#039;        =&gt; true,\n        &#039;hierarchical&#039;       =&gt; false,\n        &#039;menu_position&#039;      =&gt; 5,\n        &#039;menu_icon&#039;          =&gt; &#039;dashicons-format-gallery&#039;,\n        &#039;supports&#039;           =&gt; array( &#039;title&#039;, &#039;editor&#039;, &#039;thumbnail&#039;, &#039;excerpt&#039; )\n    );\n\nregister_post_type( &#039;portfolio&#039;, $args );\n}\nadd_action( &#039;init&#039;, &#039;create_portfolio_post_type&#039; );<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0110o\u1ea1n m\u00e3 n\u00e0y th\u00f4ng qua <code data-no-auto-translation=\"\">$labels<\/code> M\u1ea3ng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 \u0111\u1ecbnh ngh\u0129a v\u0103n b\u1ea3n hi\u1ec3n th\u1ecb tr\u00ean giao di\u1ec7n n\u1ec1n (backend interface). <code data-no-auto-translation=\"\">$args<\/code> M\u1ea3ng \u0111\u1ecbnh ngh\u0129a c\u00e1c \u0111\u1eb7c t\u00ednh h\u00e0nh vi c\u1ee7a CPT (Content Provider Type), ch\u1eb3ng h\u1ea1n nh\u01b0 li\u1ec7u n\u00f3 c\u00f3 \u0111\u01b0\u1ee3c truy c\u1eadp c\u00f4ng khai hay kh\u00f4ng, c\u0169ng nh\u01b0 c\u00e1c quy t\u1eafc \u0111\u1ed5i \u0111\u1ed5i \u0111\u1ecba ch\u1ec9 URL (URL rewriting rules).<code data-no-auto-translation=\"\">slug<\/code> \u0110\u1eb7t th\u00e0nh <code data-no-auto-translation=\"\">portfolio<\/code>C\u00e1c t\u00ednh n\u0103ng \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 (ti\u00eau \u0111\u1ec1, tr\u00ecnh so\u1ea1n th\u1ea3o, h\u00ecnh \u1ea3nh n\u1ed5i b\u1eadt, v.v.) c\u00f9ng v\u1edbi c\u00e1c bi\u1ec3u t\u01b0\u1ee3ng menu \u1edf ph\u00eda sau h\u1ec7 th\u1ed1ng. Cu\u1ed1i c\u00f9ng, h\u00e3y s\u1eed d\u1ee5ng ch\u00fang. <code data-no-auto-translation=\"\">add_action()<\/code> Hook: \u0110\u01b0\u1ee3c th\u1ef1c thi khi WordPress kh\u1edfi t\u1ea1o (initiate), \u0111\u1ec3 g\u1ecdi c\u00e1c h\u00e0m \u0111\u0103ng k\u00fd (registration functions).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">S\u1eed d\u1ee5ng plugin \u0111\u1ec3 t\u1ea1o ra.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0110\u1ed1i v\u1edbi nh\u1eefng ng\u01b0\u1eddi kh\u00f4ng quen v\u1edbi m\u00e3 ngu\u1ed3n, h\u1ecd c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00e1c plugin \u0111\u1ec3 nhanh ch\u00f3ng t\u1ea1o v\u00e0 qu\u1ea3n l\u00fd c\u00e1c lo\u1ea1i b\u00e0i vi\u1ebft \u0111\u1eb7c bi\u1ec7t (Custom Post Types \u2013 CPT). C\u00e1c plugin ph\u1ed5 bi\u1ebfn nh\u01b0 Custom Post Type UI v\u00e0 Toolset Types cung c\u1ea5p giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng tr\u1ef1c quan, cho ph\u00e9p b\u1ea1n c\u1ea5u h\u00ecnh t\u1ea5t c\u1ea3 c\u00e1c th\u00f4ng s\u1ed1 c\u1ee7a CPT ch\u1ec9 b\u1eb1ng c\u00e1ch nh\u1ea5p chu\u1ed9t, bao g\u1ed3m c\u00e1c th\u1ebb (tags), th\u00f4ng s\u1ed1 (parameters), v\u00e0 th\u1eadm ch\u00ed h\u1ec7 th\u1ed1ng ph\u00e2n lo\u1ea1i t\u00f9y ch\u1ec9nh (custom taxonomies).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u01afu \u0111i\u1ec3m c\u1ee7a c\u00e1c ph\u01b0\u01a1ng th\u1ee9c d\u1ef1a tr\u00ean plugin l\u00e0 d\u1ec5 s\u1eed d\u1ee5ng v\u00e0 kh\u00f4ng c\u1ea7n ph\u1ea3i ti\u1ebfp x\u00fac v\u1edbi m\u00e3 ngu\u1ed3n. Tuy nhi\u00ean, nh\u01b0\u1ee3c \u0111i\u1ec3m l\u00e0 ch\u1ee9c n\u0103ng v\u00e0 hi\u1ec7u su\u1ea5t c\u1ee7a trang web ho\u00e0n to\u00e0n ph\u1ee5 thu\u1ed9c v\u00e0o c\u00e1c plugin. N\u1ebfu c\u00e1c plugin \u0111\u00f3 ng\u1eebng \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt ho\u1eb7c kh\u00f4ng t\u01b0\u01a1ng th\u00edch v\u1edbi phi\u00ean b\u1ea3n c\u1ed1t l\u00f5i c\u1ee7a WordPress, \u0111i\u1ec1u \u0111\u00f3 c\u00f3 th\u1ec3 g\u00e2y ra nh\u1eefng r\u1ee7i ro. Ngo\u00e0i ra, logic ch\u1ee9c n\u0103ng c\u1ee7a trang web \u0111\u01b0\u1ee3c ph\u00e2n t\u00e1n trong c\u00e1c plugin, \u0111i\u1ec1u n\u00e0y kh\u00f4ng thu\u1eadn l\u1ee3i cho vi\u1ec7c b\u1ea3o tr\u00ec v\u00e0 di chuy\u1ec3n m\u00e3 ngu\u1ed3n l\u00e2u d\u00e0i. \u0110\u01b0\u1ee3c khuy\u00ean n\u00ean s\u1eed d\u1ee5ng c\u00e1c plugin trong giai \u0111o\u1ea1n t\u1ea1o nguy\u00ean m\u1eabu nhanh ch\u00f3ng ho\u1eb7c cho c\u00e1c d\u1ef1 \u00e1n kh\u00f4ng quan tr\u1ecdng.<\/p>\n<!-- AUTO_INTERNAL_LINKS_START --><p>\u0110\u1ecdc th\u00eam <a href=\"https:\/\/www.likacloud.com\/vi\/knowledge\/website-building\/complete-guide-to-building-a-website-for-beginners-step-by-step-process\/\">H\u01b0\u1edbng d\u1eabn thi\u1ebft y\u1ebfu cho ng\u01b0\u1eddi m\u1edbi x\u00e2y d\u1ef1ng website: Quy tr\u00ecnh ho\u00e0n ch\u1ec9nh t\u1eeb con s\u1ed1 0 \u0111\u1ebfn website chuy\u00ean nghi\u1ec7p<\/a>\u3002<\/p><!-- AUTO_INTERNAL_LINKS_END -->\n\n\n\n\n<h2 class=\"wp-block-heading\">T\u1ea1o m\u1eabu cho lo\u1ea1i b\u00e0i vi\u1ebft t\u00f9y ch\u1ec9nh<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ch\u1ec9 t\u1ea1o CPT (Custom Post Type) \u1edf ph\u00eda backend l\u00e0 ch\u01b0a \u0111\u1ee7; \u0111\u1ec3 n\u1ed9i dung c\u1ee7a n\u00f3 \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb tr\u00ean frontend theo c\u00e1ch mong mu\u1ed1n, b\u1ea1n c\u1ea7n t\u1ea1o c\u00e1c t\u1ec7p m\u1eabu ch\u1ee7 \u0111\u1ec1 (theme templates) t\u01b0\u01a1ng \u1ee9ng cho n\u00f3. WordPress tu\u00e2n theo nh\u1eefng quy t\u1eafc c\u1ee5 th\u1ec3 v\u1ec1 c\u1ea5u tr\u00fac c\u00e1c t\u1ec7p m\u1eabu \u0111\u1ec3 t\u00ecm ki\u1ebfm v\u00e0 s\u1eed d\u1ee5ng ch\u00fang.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0110\u1ec3 c\u00f3 th\u1ec3 ki\u1ec3m so\u00e1t ho\u00e0n to\u00e0n \u201cb\u1ed9 s\u01b0u t\u1eadp\u201d CPT c\u1ee7a b\u1ea1n, b\u1ea1n c\u1ea7n t\u1ea1o \u00edt nh\u1ea5t hai t\u1ec7p m\u1eabu (template files).<\/p>\n<!-- AUTO_SYNCED_PATTERN_INSERT_START -->\n\r\n<div class=\"flex justify-between items-center flex-col lg:flex-row xl:flex-col 2xl:flex-row gap-6 sm:gap-8 rounded-lg border border-gray-200 dark:border-gray-700 p-4 mb-8 lg:mb-10 sm:p-6 bg-white dark:bg-gray-750 shadow-md transition-colors duration-300\"\r\n     data-link=\"https:\/\/www.likacloud.com\/vi\/tolink\/interserver-webhosting\/\">\r\n     \r\n  <div class=\"flex flex-col gap-3 gap-4 sm:gap-6 w-full\">\r\n    <strong class=\"text-2xl font-semibold text-gray-900 dark:text-gray-200\">\r\n      M\u00e1y ch\u1ee7 chia s\u1ebb c\u1ee7a InterServer    <\/strong>\r\n    <div class=\"text-gray-600 dark:text-gray-300 word-word\">L\u01b0u tr\u1eef chia s\u1ebb v\u1edbi m\u1ee9c ph\u00ed $2,50 USD m\u1ed7i th\u00e1ng, gi\u1ea3m gi\u00e1 $0,1 USD trong th\u00e1ng \u0111\u1ea7u ti\u00ean, m\u00e3 gi\u1ea3m gi\u00e1 tryinterserver, v\u1edbi 461 \u1ee9ng d\u1ee5ng \u0111\u00e1m m\u00e2y v\u00e0 c\u00e0i \u0111\u1eb7t ch\u1ec9 b\u1eb1ng m\u1ed9t c\u00fa nh\u1ea5p chu\u1ed9t.<\/div>\r\n  <\/div>\r\n\r\n  <div class=\"flex items-center flex-col md:flex-row lg:flex-col xl:flex-row 2xl:flex-col gap-6 shrink-0\">\r\n          <a href=\"https:\/\/www.likacloud.com\/vi\/tolink\/interserver-webhosting\/\">\r\n                  <img decoding=\"async\" src=\"https:\/\/www.likacloud.com\/wp-content\/uploads\/2025\/12\/20251228045033.svg\" alt=\"Logo c\u1ee7a InterServer\" class=\"content-promotion-card-icon h-9 min-h-9 dark:hidden\" title=\"\">\r\n          <img decoding=\"async\" src=\"https:\/\/www.likacloud.com\/wp-content\/uploads\/2025\/12\/20251229054830.webp\" alt=\"Logo c\u1ee7a InterServer\" class=\"content-promotion-card-icon h-9 min-h-9 hidden dark:block\" title=\"\">\r\n              <\/a>\r\n    \r\n    <a href=\"https:\/\/www.likacloud.com\/vi\/tolink\/interserver-webhosting\/\"\r\n       class=\"bg-blue-500 w-full md:w-auto lg:w-full xl:w-auto 2xl:w-full text-center !text-white dark:!text-gray-200 !px-5 !py-1.5 rounded-full hover:bg-blue-600 transition-colors\">\r\n       Truy c\u1eadp trang    <\/a>\r\n  <\/div>\r\n<\/div>\n<!-- AUTO_SYNCED_PATTERN_INSERT_END -->\n\n\n\n\n\n<p class=\"wp-block-paragraph\">1. M\u1eabu trang l\u01b0u tr\u1eef: D\u00f9ng \u0111\u1ec3 hi\u1ec3n th\u1ecb danh s\u00e1ch t\u1ea5t c\u1ea3 c\u00e1c t\u00e1c ph\u1ea9m. H\u00e3y \u0111\u1eb7t t\u00ean t\u1ec7p n\u00e0y l\u00e0\u2026 <code data-no-auto-translation=\"\">archive-portfolio.php<\/code> V\u00e0 \u0111\u1eb7t n\u00f3 v\u00e0o th\u01b0 m\u1ee5c ch\u1ee7 \u0111\u1ec1 (theme directory) c\u1ee7a b\u1ea1n. WordPress s\u1ebd t\u1ef1 \u0111\u1ed9ng t\u00ecm th\u1ea5y v\u00e0 s\u1eed d\u1ee5ng n\u00f3 khi b\u1ea1n truy c\u1eadp v\u00e0o trang web c\u1ee7a m\u00ecnh. <code data-no-auto-translation=\"\">yoursite.com\/portfolio\/<\/code> Trong tr\u01b0\u1eddng h\u1ee3p c\u1ea7n thi\u1ebft, m\u1eabu n\u00e0y s\u1ebd \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u01b0u ti\u00ean. B\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng n\u00f3 \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c c\u00f4ng vi\u1ec7c c\u1ea7n thi\u1ebft b\u00ean trong. <code data-no-auto-translation=\"\">WP_Query<\/code> Ho\u1eb7c s\u1eed d\u1ee5ng v\u00f2ng l\u1eb7p ch\u00ednh \u0111\u1ec3 l\u1ea5y v\u00e0 hi\u1ec3n th\u1ecb t\u1ea5t c\u1ea3 c\u00e1c b\u00e0i vi\u1ebft thu\u1ed9c lo\u1ea1i \u201cB\u1ed9 s\u01b0u t\u1eadp\u201d (Portfolio).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2. M\u1eabu b\u00e0i vi\u1ebft \u0111\u01a1n l\u1ebb: D\u00f9ng \u0111\u1ec3 hi\u1ec3n th\u1ecb trang chi ti\u1ebft c\u1ee7a m\u1ed9t t\u00e1c ph\u1ea9m c\u1ee5 th\u1ec3. H\u00e3y \u0111\u1eb7t t\u00ean t\u1ec7p n\u00e0y l\u00e0\u2026 <code data-no-auto-translation=\"\">single-portfolio.php<\/code>Khi truy c\u1eadp\u2026 <code data-no-auto-translation=\"\">yoursite.com\/portfolio\/your-work\/<\/code> Khi c\u1ea7n hi\u1ec3n th\u1ecb n\u1ed9i dung, WordPress s\u1ebd g\u1ecdi \u0111\u1ebfn m\u1eabu n\u00e0y. B\u1ea1n c\u00f3 th\u1ec3 t\u1ef1 do thi\u1ebft k\u1ebf c\u1ea5u tr\u00fac b\u00ean trong c\u1ee7a m\u1eabu v\u00e0 s\u1eed d\u1ee5ng c\u00e1c tr\u01b0\u1eddng t\u00f9y ch\u1ec9nh \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a cho lo\u1ea1i n\u1ed9i dung n\u00e0y (CPT \u2013 Custom Post Type).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">D\u01b0\u1edbi \u0111\u00e2y l\u00e0\u2026 <code data-no-auto-translation=\"\">archive-portfolio.php<\/code> M\u1ed9t v\u00ed d\u1ee5 v\u1ec1 c\u1ea5u tr\u00fac c\u01a1 b\u1ea3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-auto-translation=\"\"><code class=\"language-php\" data-no-auto-translation=\"\">&lt;?php get_header(); ?&gt;\n\n&lt;section class=&quot;portfolio-archive&quot;&gt;\n    &lt;h1&gt;C&aacute;c t&aacute;c ph\u1ea9m c\u1ee7a ch&uacute;ng t&ocirc;i&lt;\/h1&gt;\n    &lt;div class=&quot;portfolio-items&quot;&gt;\n        &lt;?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?&gt;\n            &lt;article class=&quot;portfolio-item&quot;&gt;\n                &lt;a href=&quot;\/vi\/&lt;\/?php the_permalink(); ?&gt;&quot;&gt;\n                    \n                    &lt;h2&gt;&lt;?php the_title(); ?&gt;&lt;\/h2&gt;\n                &lt;\/a&gt;\n                &lt;p&gt;&lt;?php the_excerpt(); ?&gt;&lt;\/p&gt;\n            &lt;\/article&gt;\n        &lt;?php endwhile; endif; ?&gt;\n    &lt;\/div&gt;\n    &lt;?php the_posts_pagination(); ?&gt;\n&lt;\/section&gt;\n\n&lt;?php get_footer(); ?&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">B\u1eb1ng c\u00e1ch t\u1ea1o ra nh\u1eefng m\u1eabu ri\u00eang bi\u1ec7t n\u00e0y, n\u1ed9i dung CPT c\u1ee7a b\u1ea1n s\u1ebd c\u00f3 m\u1ed9t \u201cgiao di\u1ec7n\u201d (skin) \u0111\u1ed9c \u0111\u00e1o, v\u1eeba h\u00f2a quy\u1ec7n ho\u00e0n h\u1ea3o v\u1edbi c\u00e1c ph\u1ea7n kh\u00e1c c\u1ee7a trang web v\u1eeba gi\u1eef \u0111\u01b0\u1ee3c b\u1ea3n s\u1eafc ri\u00eang.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">T\u00ednh n\u0103ng n\u00e2ng cao v\u00e0 Th\u1ef1c h\u00e0nh t\u1ed1t nh\u1ea5t (Advanced Features and Best Practices)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sau khi \u0111\u0103ng k\u00fd th\u00e0nh c\u00f4ng v\u00e0 hi\u1ec3n th\u1ecb th\u00f4ng tin CPT (Cost Per Task), b\u1ea1n c\u00f3 th\u1ec3 t\u1ed1i \u01b0u h\u00f3a n\u00f3 th\u00eam n\u1eefa b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng m\u1ed9t s\u1ed1 t\u00ednh n\u0103ng n\u00e2ng cao v\u00e0 th\u1ef1c h\u00e0nh t\u1ed1t nh\u1ea5t.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Li\u00ean k\u1ebft v\u1edbi h\u1ec7 th\u1ed1ng ph\u00e2n lo\u1ea1i t\u00f9y ch\u1ec9nh<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">C\u0169ng gi\u1ed1ng nh\u01b0 c\u00e1c b\u00e0i vi\u1ebft c\u00f3 \u201cm\u1ee5c l\u1ee5c ph\u00e2n lo\u1ea1i\u201d v\u00e0 \u201cth\u1ebb g\u1eafn nh\u00e3n\u201d, CPT (Component Presentation Type) c\u1ee7a b\u1ea1n c\u0169ng c\u00f3 th\u1ec3 c\u00f3 h\u1ec7 th\u1ed1ng ph\u00e2n lo\u1ea1i ri\u00eang. V\u00ed d\u1ee5, b\u1ea1n c\u00f3 th\u1ec3 t\u1ea1o m\u1ed9t h\u1ec7 th\u1ed1ng ph\u00e2n lo\u1ea1i \u201cLo\u1ea1i D\u1ef1 \u00c1n\u201d cho \u201cB\u1ed9 S\u01b0u T\u1eadp T\u00e1c Ph\u1ea9m\u201d (Collection of Works). <code data-no-auto-translation=\"\">register_taxonomy()<\/code> B\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00e1c h\u00e0m (functions) \u0111\u1ec3 ph\u00e2n lo\u1ea1i c\u00e1c t\u00e1c ph\u1ea9m th\u00e0nh c\u00e1c nh\u00f3m nh\u01b0 \u201cThi\u1ebft k\u1ebf web\u201d, \u201cThi\u1ebft k\u1ebf th\u01b0\u01a1ng hi\u1ec7u\u201d, \u201cUI\/UX\u201d, v.v., gi\u00fap vi\u1ec7c l\u1ecdc d\u1eef li\u1ec7u \u1edf ph\u00eda tr\u01b0\u1edbc (frontend) v\u00e0 qu\u1ea3n l\u00fd d\u1eef li\u1ec7u \u1edf ph\u00eda sau (backend) tr\u1edf n\u00ean d\u1ec5 d\u00e0ng h\u01a1n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">S\u1eed d\u1ee5ng c\u00e1c tr\u01b0\u1eddng t\u00f9y ch\u1ec9nh n\u00e2ng cao<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tr\u00ecnh so\u1ea1n th\u1ea3o b\u00e0i vi\u1ebft g\u1ed1c c\u1ee7a WordPress kh\u00f4ng th\u1ec3 \u0111\u00e1p \u1ee9ng \u0111\u01b0\u1ee3c nhu c\u1ea7u nh\u1eadp d\u1eef li\u1ec7u ph\u1ee9c t\u1ea1p. Vi\u1ec7c t\u00edch h\u1ee3p c\u00e1c plugin nh\u01b0 Advanced Custom Fields (ACF) ho\u1eb7c Meta Box s\u1ebd gi\u00fap b\u1ea1n t\u1ea1o ra c\u00e1c nh\u00f3m tr\u01b0\u1eddng tr\u1ef1c quan cho lo\u1ea1i b\u00e0i vi\u1ebft \u0111\u1eb7c bi\u1ec7t (CPT \u2013 Custom Post Type) c\u1ee7a m\u00ecnh, ch\u1eb3ng h\u1ea1n nh\u01b0 th\u01b0 vi\u1ec7n h\u00ecnh \u1ea3nh, b\u1ed9 ch\u1ecdn (selector), li\u00ean k\u1ebft \u0111\u1ebfn c\u00e1c b\u00e0i vi\u1ebft kh\u00e1c, b\u1ed9 ch\u1ecdn ng\u00e0y th\u00e1ng, v.v. \u0110i\u1ec1u n\u00e0y s\u1ebd bi\u1ebfn lo\u1ea1i b\u00e0i vi\u1ebft \u0111\u1eb7c bi\u1ec7t \u0111\u00f3 t\u1eeb m\u1ed9t c\u00f4ng c\u1ee5 \u0111\u01a1n gi\u1ea3n \u0111\u1ec3 \u0111\u0103ng b\u00e0i th\u00e0nh m\u1ed9t h\u1ec7 th\u1ed1ng nh\u1eadp d\u1eef li\u1ec7u m\u1ea1nh m\u1ebd v\u00e0 linh ho\u1ea1t h\u01a1n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0110i\u1ec1u ch\u1ec9nh quy t\u1eafc vi\u1ebft l\u1ea1i n\u1ed9i dung v\u00e0 c\u00e1c li\u00ean k\u1ebft c\u1ed1 \u0111\u1ecbnh (fixed links)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0110\u01b0\u1ee3c thi\u1ebft l\u1eadp khi \u0111\u0103ng k\u00fd CPT. <code data-no-auto-translation=\"\">rewrite<\/code> C\u00e1c tham s\u1ed1 c\u00f3 th\u1ec3 \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn c\u1ea5u tr\u00fac URL c\u1ee7a trang web. Vui l\u00f2ng \u0111\u1ea3m b\u1ea3o r\u1eb1ng sau khi t\u1ea1o CPT (Custom Post Type), b\u1ea1n truy c\u1eadp ngay trang \u201cC\u00e0i \u0111\u1eb7t\u201d -&gt; \u201cLi\u00ean k\u1ebft c\u1ed1 \u0111\u1ecbnh\u201d (Settings -&gt; Fixed Links) trong WordPress, sau \u0111\u00f3 nh\u1ea5p v\u00e0o n\u00fat \u201cL\u01b0u thay \u0111\u1ed5i\u201d (Save Changes) \u0111\u1ec3 c\u1eadp nh\u1eadt c\u00e1c quy t\u1eafc \u0111\u1ecbnh tuy\u1ebfn URL. \u0110i\u1ec1u n\u00e0y s\u1ebd gi\u00fap c\u1ea5u tr\u00fac URL m\u1edbi \u0111\u01b0\u1ee3c \u00e1p d\u1ee5ng m\u1ed9t c\u00e1ch ch\u00ednh x\u00e1c.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">(Xem x\u00e9t v\u1ec1 hi\u1ec7u su\u1ea5t)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">H\u00e3y tr\u00e1nh \u0111\u0103ng k\u00fd nh\u1eefng t\u00ednh n\u0103ng kh\u00f4ng c\u1ea7n thi\u1ebft cho CPT (ch\u1eb3ng h\u1ea1n nh\u01b0 ch\u1ee9c n\u0103ng b\u00ecnh lu\u1eadn, tr\u00edch d\u1eabn), v\u00e0 s\u1eed d\u1ee5ng ch\u00fang m\u1ed9t c\u00e1ch h\u1ee3p l\u00fd. <code data-no-auto-translation=\"\">WP_Query<\/code> \u7684 <code data-no-auto-translation=\"\">posts_per_page<\/code> V\u00e0 c\u01a1 ch\u1ebf \u0111\u1ec7m (cache), \u0111\u1eb7c bi\u1ec7t l\u00e0 khi truy v\u1ea5n m\u1ed9t l\u01b0\u1ee3ng l\u1edbn d\u1eef li\u1ec7u CPT tr\u00ean trang danh s\u00e1ch. \u0110\u1ed1i v\u1edbi c\u00e1c truy v\u1ea5n ph\u1ee9c t\u1ea1p c\u00f3 nhi\u1ec1u m\u1ed1i li\u00ean h\u1ec7 (associated queries), h\u00e3y xem x\u00e9t s\u1eed d\u1ee5ng API Transients \u0111\u1ec3 l\u01b0u tr\u1eef d\u1eef li\u1ec7u \u0111\u00e3 \u0111\u01b0\u1ee3c x\u1eed l\u00fd v\u00e0o b\u1ed9 \u0111\u1ec7m.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">T\u00e1ch m\u00e3 ch\u1ee9c n\u0103ng<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0110\u1ed1i v\u1edbi m\u00f4i tr\u01b0\u1eddng s\u1ea3n xu\u1ea5t, ch\u00fang t\u00f4i khuy\u1ebfn ngh\u1ecb m\u1ea1nh m\u1ebd r\u1eb1ng b\u1ea1n n\u00ean t\u00e1ch \u0111o\u1ea1n m\u00e3 d\u00f9ng \u0111\u1ec3 t\u1ea1o CPT (Custom Post Type) ra kh\u1ecfi ph\u1ea7n m\u00e3 c\u1ee7a ch\u1ee7 \u0111\u1ec1 (theme). <code data-no-auto-translation=\"\">functions.php<\/code> H\u00e3y chuy\u1ec3n nh\u1eefng n\u1ed9i dung n\u00e0y ra kh\u1ecfi ch\u00ednh ph\u1ea7n ch\u00ednh c\u1ee7a \u1ee9ng d\u1ee5ng v\u00e0 \u0111\u01b0a ch\u00fang v\u00e0o m\u1ed9t \u201cti\u1ec7n \u00edch m\u1edf r\u1ed9ng t\u00f9y ch\u1ec9nh\u201d (custom plugin) ri\u00eang bi\u1ec7t. L\u1ee3i \u00edch c\u1ee7a vi\u1ec7c n\u00e0y l\u00e0: ngay c\u1ea3 khi b\u1ea1n thay \u0111\u1ed5i giao di\u1ec7n (theme) trong t\u01b0\u01a1ng lai, c\u00e1c \u0111\u1ecbnh ngh\u0129a li\u00ean quan \u0111\u1ebfn CPT (Custom Post Type) v\u1eabn s\u1ebd \u0111\u01b0\u1ee3c gi\u1eef nguy\u00ean, d\u1eef li\u1ec7u kh\u00f4ng b\u1ecb m\u1ea5t, v\u00e0 vi\u1ec7c ph\u00e2n t\u00e1ch gi\u1eefa ch<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">T\u00f3m l\u1ea1i<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Vi\u1ec7c t\u00f9y ch\u1ec9nh c\u00e1c lo\u1ea1i b\u00e0i vi\u1ebft (custom post types) ch\u00ednh l\u00e0 ch\u00eca kh\u00f3a then ch\u1ed1t \u0111\u1ec3 khai th\u00e1c h\u1ebft ti\u1ec1m n\u0103ng qu\u1ea3n l\u00fd n\u1ed9i dung m\u1ea1nh m\u1ebd c\u1ee7a WordPress. B\u1eb1ng c\u00e1ch cho ph\u00e9p b\u1ea1n t\u1ea1o ra c\u00e1c c\u1ea5u tr\u00fac d\u1eef li\u1ec7u v\u00e0 logic hi\u1ec3n th\u1ecb ri\u00eang bi\u1ec7t cho t\u1eebng lo\u1ea1i n\u1ed9i dung kh\u00e1c nhau, WordPress \u0111\u01b0\u1ee3c n\u00e2ng l\u00ean t\u1eeb m\u1ed9t n\u1ec1n t\u1ea3ng blog xu\u1ea5t s\u1eafc th\u00e0nh m\u1ed9t h\u1ec7 th\u1ed1ng qu\u1ea3n l\u00fd n\u1ed9i dung \u0111a n\u0103ng v\u00e0 to\u00e0n di\u1ec7n. D\u00f9 b\u1ea1n mu\u1ed1n x\u00e2y d\u1ef1ng b\u1ed9 s\u01b0u t\u1eadp t\u00e1c ph\u1ea9m, qu\u1ea3n l\u00fd danh m\u1ee5c s\u1ea3n ph\u1ea9m, hi\u1ec3n th\u1ecb danh s\u00e1ch s\u1ef1 ki\u1ec7n, hay ph\u00e1t tri\u1ec3n c\u00e1c \u1ee9ng d\u1ee5ng ph\u1ee9c t\u1ea1p h\u01a1n, t\u00ednh n\u0103ng CPT (Custom Post Types) \u0111\u1ec1u cung c\u1ea5p nh\u1eefng gi\u1ea3i ph\u00e1p r\u00f5 r\u00e0ng, hi\u1ec7u qu\u1ea3 v\u00e0 d\u1ec5 b\u1ea3o tr\u00ec.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">T\u1eeb vi\u1ec7c \u0111\u0103ng k\u00fd th\u00f4ng qua m\u00e3 ngu\u1ed3n ho\u1eb7c s\u1eed d\u1ee5ng c\u00e1c plugin \u0111\u1ec3 t\u1ea1o n\u1ed9i dung, \u0111\u1ebfn vi\u1ec7c thi\u1ebft k\u1ebf c\u00e1c t\u1ec7p m\u1eabu ri\u00eang bi\u1ec7t, v\u00e0 sau \u0111\u00f3 m\u1edf r\u1ed9ng ch\u1ee9c n\u0103ng b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng c\u00e1c h\u1ec7 th\u1ed1ng ph\u00e2n lo\u1ea1i t\u00f9y ch\u1ec9nh c\u00f9ng c\u00e1c tr\u01b0\u1eddng d\u1eef li\u1ec7u n\u00e2ng cao, vi\u1ec7c n\u1eafm v\u1eefng CPT (Custom Post Types) gi\u00fap b\u1ea1n \u0111i\u1ec1u h\u00e0nh WordPress m\u1ed9t c\u00e1ch chuy\u00ean nghi\u1ec7p v\u00e0 linh ho\u1ea1t h\u01a1n. Tu\u00e2n theo c\u00e1c th\u1ef1c h\u00e0nh t\u1ed1t nh\u1ea5t trong vi\u1ec7c t\u00e1ch m\u00e3 ngu\u1ed3n ch\u1ee9a ch\u1ee9c n\u0103ng kh\u1ecfi giao di\u1ec7n thi\u1ebft k\u1ebf c\u1ee7a theme (theme), b\u1ea1n c\u00f3 th\u1ec3 \u0111\u1ea3m b\u1ea3o r\u1eb1ng c\u1ea5u tr\u00fac trang web c\u1ee7a m\u00ecnh c\u00f3 t\u00ednh b\u1ea3o tr\u00ec l\u00e2u d\u00e0i v\u00e0 \u0111\u1ed9 \u1ed5n \u0111\u1ecbnh cao, t\u1eeb \u0111\u00f3 t\u1ea1o n\u1ec1n t\u1ea3ng v\u1eefng ch\u1eafc cho s\u1ef1 ph\u00e1t tri\u1ec3n trong t\u01b0\u01a1ng lai.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ \u5e38\u89c1\u95ee\u9898<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Vi\u1ec7c t\u1ea1o c\u00e1c lo\u1ea1i b\u00e0i vi\u1ebft t\u00f9y ch\u1ec9nh c\u00f3 \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn t\u1ed1c \u0111\u1ed9 trang web kh\u00f4ng?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Vi\u1ec7c t\u1ea1o ra v\u00e0 s\u1eed d\u1ee5ng c\u00e1c lo\u1ea1i b\u00e0i vi\u1ebft t\u00f9y ch\u1ec9nh m\u1ed9t c\u00e1ch h\u1ee3p l\u00fd kh\u00f4ng g\u00e2y \u1ea3nh h\u01b0\u1edfng ti\u00eau c\u1ef1c \u0111\u1ebfn t\u1ed1c \u0111\u1ed9 trang web. Th\u1ef1c t\u1ebf, b\u1eb1ng c\u00e1ch ph\u00e2n lo\u1ea1i n\u1ed9i dung, ch\u00fang ta c\u00f3 th\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c truy v\u1ea5n c\u01a1 s\u1edf d\u1eef li\u1ec7u m\u1ed9t c\u00e1ch ch\u00ednh x\u00e1c v\u00e0 hi\u1ec7u qu\u1ea3 h\u01a1n, t\u1eeb \u0111\u00f3 c\u00f3 th\u1ec3 c\u1ea3i thi\u1ec7n t\u1ed1c \u0111\u1ed9 t\u1ea3i trang c\u1ee7a c\u00e1c trang c\u1ee5 th\u1ec3.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00e1c y\u1ebfu t\u1ed1 \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn t\u1ed1c \u0111\u1ed9 trang web th\u01b0\u1eddng bao g\u1ed3m \u0111\u1ed9 ph\u1ee9c t\u1ea1p c\u1ee7a c\u00e1c truy v\u1ea5n trong c\u00e1c t\u1ec7p m\u1eabu \u0111\u01b0\u1ee3c vi\u1ebft cho h\u1ec7 th\u1ed1ng CPT (Custom Post Type), s\u1ef1 hi\u1ec7n di\u1ec7n c\u1ee7a nhi\u1ec1u h\u00ecnh \u1ea3nh ch\u01b0a \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u h\u00f3a, ho\u1eb7c vi\u1ec7c s\u1eed d\u1ee5ng c\u00e1c truy v\u1ea5n ph\u1ee9c t\u1ea1p m\u00e0 kh\u00f4ng \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong b\u1ed9 nh\u1edb (kh\u00f4ng \u0111\u01b0\u1ee3c \u0111\u1ec7m). Vi\u1ec7c tu\u00e2n th\u1ee7 c\u00e1c th\u1ef1c h\u00e0nh t\u1ed1t nh\u1ea5t v\u1ec1 hi\u1ec7u n\u0103ng c\u1ee7a WordPress, nh\u01b0 ki\u1ec3m so\u00e1t s\u1ed1 l\u01b0\u1ee3ng truy v\u1ea5n, s\u1eed d\u1ee5ng ch\u1ee9c n\u0103ng ph\u00e2n trang, v\u00e0 k\u00edch ho\u1ea1t ch\u1ee9c n\u0103ng l\u01b0u tr\u1eef \u0111\u1ec7m d\u1eef li\u1ec7u (object caching), l\u00e0 nh\u1eefng y\u1ebfu t\u1ed1 then ch\u1ed1t \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o trang web ho\u1ea1t \u0111\u1ed9ng nhanh ch\u00f3ng v\u00e0 \u1ed5n \u0111\u1ecbnh.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">N\u1ebfu t\u00f4i x\u00f3a lo\u1ea1i b\u00e0i vi\u1ebft t\u00f9y ch\u1ec9nh, c\u00e1c b\u00e0i vi\u1ebft thu\u1ed9c lo\u1ea1i \u0111\u00f3 c\u00f3 b\u1ecb m\u1ea5t kh\u00f4ng?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0110i\u1ec1u n\u00e0y ph\u1ee5 thu\u1ed9c v\u00e0o c\u00e1ch b\u1ea1n x\u00f3a n\u00f3. N\u1ebfu b\u1ea1n ch\u1ec9 g\u1ee1 b\u1ecf \u0111o\u1ea1n m\u00e3 li\u00ean quan \u0111\u1ebfn vi\u1ec7c \u0111\u0103ng k\u00fd CPT (Custom Post Type) kh\u1ecfi m\u00e3 ngu\u1ed3n, ho\u1eb7c t\u1eaft plugin d\u00f9ng \u0111\u1ec3 t\u1ea1o CPT \u0111\u00f3, th\u00ec tr\u00ean giao di\u1ec7n qu\u1ea3n tr\u1ecb b\u1ea1n s\u1ebd kh\u00f4ng th\u1ea5y menu qu\u1ea3n l\u00fd cho lo\u1ea1i CPT \u0111\u00f3 n\u1eefa; tuy nhi\u00ean, d\u1eef li\u1ec7u c\u1ee7a c\u00e1c b\u00e0i vi\u1ebft li\u00ean quan \u0111\u1ebfn CPT v\u1eabn s\u1ebd c\u00f2n t\u1ed3n t\u1ea1i trong WordPress. <code data-no-auto-translation=\"\">wp_posts<\/code> Trong b\u1ea3ng c\u01a1 s\u1edf d\u1eef li\u1ec7u, ch\u1ec9 c\u00f3\u2026 <code data-no-auto-translation=\"\">post_type<\/code> C\u00e1c gi\u00e1 tr\u1ecb tr\u01b0\u1eddng (ch\u1eb3ng h\u1ea1n nh\u01b0 \u201cportfolio\u201d) kh\u00f4ng c\u00f2n \u0111\u01b0\u1ee3c phi\u00ean b\u1ea3n c\u1ed1t l\u00f5i c\u1ee7a WordPress coi l\u00e0 c\u00e1c lo\u1ea1i d\u1eef li\u1ec7u c\u00f4ng khai h\u1ee3p l\u1ec7 n\u1eefa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Trong tr\u01b0\u1eddng h\u1ee3p n\u00e0y, b\u1ea1n c\u00f3 th\u1ec3 kh\u00f4i ph\u1ee5c quy\u1ec1n truy c\u1eadp b\u1eb1ng c\u00e1ch s\u1eeda \u0111\u1ed5i m\u00e3 ngu\u1ed3n \u0111\u1ec3 \u0111\u0103ng k\u00fd l\u1ea1i c\u00e1c b\u00e0i vi\u1ebft c\u00f3 t\u00ean CPT tr\u00f9ng l\u1eb7p. Trong nh\u1eefng tr\u01b0\u1eddng h\u1ee3p nghi\u00eam tr\u1ecdng, b\u1ea1n c\u0169ng c\u00f3 th\u1ec3 th\u1ef1c hi\u1ec7n vi\u1ec7c n\u00e0y m\u1ed9t c\u00e1ch th\u1ee7 c\u00f4ng b\u1eb1ng c\u00e1ch truy v\u1ea5n c\u01a1 s\u1edf d\u1eef li\u1ec7u. <code data-no-auto-translation=\"\">post_type<\/code> H\u00e3y quay l\u1ea1i s\u1eed d\u1ee5ng thu\u1eadt ng\u1eef \u201cpost\u201d ho\u1eb7c \u201cpage\u201d. \u0110\u00e2y l\u00e0 m\u1ed9t l\u1eddi c\u1ea3nh b\u00e1o quan tr\u1ecdng: Tr\u01b0\u1edbc khi th\u1ef1c hi\u1ec7n b\u1ea5t k\u1ef3 thay \u0111\u1ed5i c\u1ea5u tr\u00fac n\u00e0o quan tr\u1ecdng (ch\u1eb3ng h\u1ea1n nh\u01b0 x\u00f3a m\u1ed9t CPT m\u1ed9t c\u00e1ch v\u0129nh vi\u1ec5n), h\u00e3y \u0111\u1ea3m b\u1ea3o sao l\u01b0u c\u01a1 s\u1edf d\u1eef li\u1ec7u c\u1ee7a b\u1ea1n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">L\u00e0m th\u1ebf n\u00e0o \u0111\u1ec3 th\u00eam c\u00e1c tr\u01b0\u1eddng t\u00f9y ch\u1ec9nh cho c\u00e1c lo\u1ea1i b\u00e0i vi\u1ebft t\u1ef1 \u0111\u1ecbnh?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00f3 hai ph\u01b0\u01a1ng ph\u00e1p ch\u00ednh \u0111\u1ec3 th\u00eam c\u00e1c tr\u01b0\u1eddng t\u00f9y ch\u1ec9nh (custom fields) cho CPT (Custom Post Type). Ph\u01b0\u01a1ng ph\u00e1p \u0111\u1ea7u ti\u00ean l\u00e0 s\u1eed d\u1ee5ng b\u1ea3ng \u0111i\u1ec1u khi\u1ec3n \u201cTr\u01b0\u1eddng t\u00f9y ch\u1ec9nh\u201d (Custom Fields) c\u00f3 s\u1eb5n trong WordPress, tuy nhi\u00ean giao di\u1ec7n c\u1ee7a n\u00f3 kh\u00e1 \u0111\u01a1n gi\u1ea3n v\u00e0 ch\u1ee9c n\u0103ng h\u1ea1n ch\u1ebf, kh\u00f4ng ph\u00f9 h\u1ee3p v\u1edbi nh\u1eefng y\u00eau c\u1ea7u ph\u1ee9c t\u1ea1p. Ph\u01b0\u01a1ng ph\u00e1p th\u1ee9 hai, c\u0169ng l\u00e0 ph\u01b0\u01a1ng ph\u00e1p \u0111\u01b0\u1ee3c khuy\u1ebfn ngh\u1ecb, l\u00e0 s\u1eed d\u1ee5ng c\u00e1c plugin qu\u1ea3n l\u00fd tr\u01b0\u1eddng t\u00f9y ch\u1ec9nh c\u1ee7a b\u00ean th\u1ee9 ba nh\u01b0 Advanced Custom Fields (ACF) ho\u1eb7c Meta Box.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nh\u1eefng plugin n\u00e0y cung c\u1ea5p giao di\u1ec7n tr\u1ef1c quan, cho ph\u00e9p b\u1ea1n t\u1ea1o c\u00e1c nh\u00f3m tr\u01b0\u1eddng (v\u00ed d\u1ee5: \u201cTh\u00f4ng tin s\u1ea3n ph\u1ea9m\u201d) v\u00e0 g\u00e1n ch\u00fang cho c\u00e1c lo\u1ea1i s\u1ea3n ph\u1ea9m c\u1ee5 th\u1ec3 (CPT \u2013 Product Category Terms). Sau \u0111\u00f3, b\u1ea1n c\u00f3 th\u1ec3 th\u1ea5y nh\u1eefng \u00f4 nh\u1eadp tr\u01b0\u1eddng n\u00e0y tr\u00ean trang ch\u1ec9nh s\u1eeda c\u1ee7a lo\u1ea1i s\u1ea3n ph\u1ea9m \u0111\u00f3. Trong c\u00e1c m\u1eabu giao di\u1ec7n (frontend templates), b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00e1c h\u00e0m \u0111\u01b0\u1ee3c cung c\u1ea5p b\u1edfi plugin (ch\u1eb3ng h\u1ea1n nh\u01b0 c\u00e1c h\u00e0m c\u1ee7a ACF \u2013 Advanced Custom Fields). <code data-no-auto-translation=\"\">get_field()<\/code>B\u1ea1n c\u00f3 th\u1ec3 d\u1ec5 d\u00e0ng truy c\u1eadp v\u00e0 hi\u1ec3n th\u1ecb gi\u00e1 tr\u1ecb c\u1ee7a c\u00e1c tr\u01b0\u1eddng n\u00e0y b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng ph\u01b0\u01a1ng th\u1ee9c t\u01b0\u01a1ng \u1ee9ng.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">C\u00e1c lo\u1ea1i b\u00e0i vi\u1ebft t\u00f9y ch\u1ec9nh c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng c\u00f9ng v\u1edbi c\u00e1c m\u1eabu trang (page templates) kh\u00f4ng?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0110\u01b0\u1ee3c, nh\u01b0ng \u0111\u00e2y l\u00e0 hai t\u00ednh n\u0103ng kh\u00e1c nhau nh\u01b0ng c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c k\u1ebft h\u1ee3p v\u1edbi nhau. M\u1eabu trang (page template) \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 ch\u1ecdn giao di\u1ec7n (layout) kh\u00e1c nhau cho t\u1eebng \u201ctrang\u201d c\u1ee5 th\u1ec3, trong khi m\u1eabu CPT (Content Type Template) d\u00f9ng \u0111\u1ec3 ki\u1ec3m so\u00e1t logic hi\u1ec3n th\u1ecb cho to\u00e0n b\u1ed9 lo\u1ea1i n\u1ed9i dung \u0111\u00f3. B\u1ea1n c\u00f3 th\u1ec3 t\u1ea1o m\u1ed9t \u201cm\u1eabu trang\u201d ri\u00eang cho m\u1ed9t b\u00e0i vi\u1ebft c\u1ee5 th\u1ec3 thu\u1ed9c lo\u1ea1i n\u1ed9i dung \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd b\u1edfi m\u1eabu CPT \u0111\u00f3.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00ed d\u1ee5, b\u1ea1n c\u00f3 m\u1ed9t th\u00e0nh vi\u00ean lo\u1ea1i \u201cCPT\u201d (Member CPT), v\u00e0 m\u1eabu m\u1eb7c \u0111\u1ecbnh d\u00e0nh cho th\u00e0nh vi\u00ean n\u00e0y l\u00e0\u2026 <code data-no-auto-translation=\"\">single-member.php<\/code>B\u1ea1n c\u00f3 th\u1ec3 t\u1ea1o m\u1ed9t th\u1ee9 c\u00f3 t\u00ean l\u00e0\u2026 <code data-no-auto-translation=\"\">page-template-leadership.php<\/code> Trang m\u1eabu \u0111\u00f3, sau \u0111\u00f3\u2026 <code data-no-auto-translation=\"\">WP_Query<\/code> Trong tr\u01b0\u1eddng h\u1ee3p n\u00e0y, b\u1ea1n c\u1ea7n t\u00ecm ki\u1ebfm nh\u1eefng th\u00e0nh vi\u00ean gi\u1eef ch\u1ee9c v\u1ee5 c\u1ee5 th\u1ec3 trong nh\u00f3m \u201cCPT\u201d v\u00e0 hi\u1ec3n th\u1ecb th\u00f4ng tin c\u1ee7a h\u1ecd theo b\u1ed1 c\u1ee5c \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a b\u1edfi m\u1ed9t m\u1eabu (template) nh\u1ea5t \u0111\u1ecbnh. \u1ede ph\u00eda backend (ph\u1ea7n qu\u1ea3n tr\u1ecb n\u1ed9i dung), b\u1ea1n c\u1ea7n t\u1ea1o m\u1ed9t trang m\u1edbi tr\u00ean h\u1ec7 th\u1ed1ng WordPress v\u00e0 ch\u1ecdn m\u1eabu t\u00f9y ch\u1ec9nh n\u00e0y cho trang \u0111\u00f3. \u0110i\u1ec1u n\u00e0y minh h\u1ecda r\u00f5 t\u00ednh linh ho\u1ea1t c\u1ee7a h\u1ec7 th\u1ed1ng m\u1eabu trong WordPress.<\/p>","protected":false},"excerpt":{"rendered":"<p>B\u00e0i vi\u1ebft n\u00e0y tr\u00ecnh b\u00e0y m\u1ed9t c\u00e1ch h\u1ec7 th\u1ed1ng v\u1ec1 c\u00e1c lo\u1ea1i b\u00e0i vi\u1ebft t\u00f9y ch\u1ec9nh (Custom Post Types \u2013 CPT) trong WordPress. N\u00f3 gi\u1ea3i th\u00edch c\u00e1ch CPT gi\u00fap v\u01b0\u1ee3t qua nh\u1eefng h\u1ea1n ch\u1ebf c\u1ee7a c\u00e1c lo\u1ea1i b\u00e0i vi\u1ebft v\u00e0 trang m\u1eb7c \u0111\u1ecbnh (\u201cArticle\u201d v\u00e0 \u201cPage\u201d), t\u1eeb \u0111\u00f3 t\u1ea1o ra c\u00e1c c\u1ea5u tr\u00fac d\u1eef li\u1ec7u v\u00e0 giao di\u1ec7n qu\u1ea3n l\u00fd ri\u00eang bi\u1ec7t cho c\u00e1c n\u1ed9i dung nh\u01b0 s\u1ea3n ph\u1ea9m, b\u1ed9 s\u01b0u t\u1eadp t\u00e1c ph\u1ea9m, v.v. B\u00e0i vi\u1ebft c\u0169ng n\u00eau r\u00f5 nh\u1eefng \u01b0u \u0111i\u1ec3m c\u1ee7a CPT v\u1ec1 m\u1eb7t s\u1ef1 ti\u1ec7n l\u1ee3i trong qu\u1ea3n l\u00fd, t\u00ednh r\u00f5 r\u00e0ng c\u1ee7a c\u1ea5u tr\u00fac d\u1eef li\u1ec7u, t\u00ednh linh ho\u1ea1t trong hi\u1ec3n th\u1ecb tr\u00ean giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng (frontend) v\u00e0 vi\u1ec7c t\u1ed1i \u01b0u h\u00f3a hi\u1ec7u n\u0103ng. Ngo\u00e0i ra, b\u00e0i vi\u1ebft c\u00f2n \u0111\u01b0a ra m\u1ed9t c\u00e1i nh\u00ecn t\u1ed5ng quan ng\u1eafn g\u1ecdn v\u1ec1 hai ph\u01b0\u01a1ng ph\u00e1p \u0111\u1ec3 t\u1ea1o c\u00e1c lo\u1ea1i b\u00e0i vi\u1ebft t\u00f9y ch\u1ec9nh: th\u00f4ng qua vi\u1ec7c vi\u1ebft m\u00e3 ngu\u1ed3n (coding) ho\u1eb7c s\u1eed d<\/p>","protected":false},"author":2,"featured_media":0,"template":"","meta":{"_acf_changed":false,"footnotes":""},"tags":[118,446,1931,379,1972],"knowledge_category":[280],"class_list":["post-12360787","knowledge_post","type-knowledge_post","status-publish","hentry","tag-wordpress","tag-content-management","tag-template-making","tag-web-development","tag-custom-post-types","knowledge_category-wordpress"],"acf":{"site_seo_keywords":"WordPress\u81ea\u5b9a\u4e49\u6587\u7ae0\u7c7b\u578b,CPT\u521b\u5efa\u6559\u7a0b,WordPress\u5f00\u53d1,\u5185\u5bb9\u7ba1\u7406,\u7f51\u7ad9\u67b6\u6784,\u9ad8\u7ea7\u81ea\u5b9a\u4e49\u5b57\u6bb5,register_post_type,WordPress\u6027\u80fd\u4f18\u5316"},"_links":{"self":[{"href":"https:\/\/www.likacloud.com\/vi\/wp-json\/wp\/v2\/knowledge_posts\/12360787","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.likacloud.com\/vi\/wp-json\/wp\/v2\/knowledge_posts"}],"about":[{"href":"https:\/\/www.likacloud.com\/vi\/wp-json\/wp\/v2\/types\/knowledge_post"}],"author":[{"embeddable":true,"href":"https:\/\/www.likacloud.com\/vi\/wp-json\/wp\/v2\/users\/2"}],"version-history":[{"count":1,"href":"https:\/\/www.likacloud.com\/vi\/wp-json\/wp\/v2\/knowledge_posts\/12360787\/revisions"}],"predecessor-version":[{"id":12405398,"href":"https:\/\/www.likacloud.com\/vi\/wp-json\/wp\/v2\/knowledge_posts\/12360787\/revisions\/12405398"}],"wp:attachment":[{"href":"https:\/\/www.likacloud.com\/vi\/wp-json\/wp\/v2\/media?parent=12360787"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.likacloud.com\/vi\/wp-json\/wp\/v2\/tags?post=12360787"},{"taxonomy":"knowledge_category","embeddable":true,"href":"https:\/\/www.likacloud.com\/vi\/wp-json\/wp\/v2\/knowledge_category?post=12360787"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}