WordPress پیشفرض Post و Page داره. ولی برای Blog، Product، Event، Book انواع محتوای اختصاصی نیاز هست. Custom Post Type راهحله.
CPT مزایا
سازماندهی: محتوای خاص جدا
Custom Fields: فیلدهای اختصاصی
Template: طراحی جدا
SEO مستقل
ساخت CPT با کد
function register_book_cpt() {
register_post_type('book', [
'labels' => ['name' => 'کتابها'],
'public' => true,
'has_archive' => true,
'supports' => ['title', 'editor', 'thumbnail']
]);
}
add_action('init', 'register_book_cpt');
Parameters
public: در UI ظاهر بشه
has_archive: archive page
supports: title، editor، thumbnail، etc
rewrite: URL slug
menu_icon: آیکون منو
show_in_rest: REST API + Gutenberg
ساخت با پلاگین
Custom Post Type UI پلاگین. بدون کد.
Taxonomy
register_taxonomy برای دستهبندی CPT:
register_taxonomy('genre', 'book', [...]);
Custom Fields
Advanced Custom Fields (ACF): بهترین
Metabox: قدرتمند
Pods: کامل
Query CPT
$books = new WP_Query([
'post_type' => 'book',
'posts_per_page' => 10
]);
Template Hierarchy
single-book.php: نمایش یک کتاب
archive-book.php: لیست کتابها
SEO
Yoast SEO از CPT پشتیبانی میکنه.
REST API
show_in_rest => true. با REST API قابل دسترسیه.
Gutenberg
show_in_rest اجباری برای Block Editor.
Custom Fields در Gutenberg
register_meta با show_in_rest.
ACF Fields
Text، Image، Relationship، Repeater. تنوع بالا.
Menu Position
menu_position => 5 برای زیر Posts.
Rewrite Rules
Flush کنید بعد ساخت CPT: /wp-admin/options-permalink.php
Import/Export
WP All Import برای Import انبوه.
سباهاست
هاست وردپرس سباهاست از CPT پشتیبانی کامل داره.
جمعبندی
CPT قدرت WordPress رو چند برابر میکنه. با استفاده درست، هر سایتی رو حرفهای بسازید.