پست تایپ نوعی صفحهی سفارشی سازی شده برای نوشته، برگه و یا محصولات است و به شما این امکان را میدهد به کمک انواع پستهای سفارشی، وبسایت استاندارد وردپرس خود را به یک سیستم مدیریت محتوای کامل تبدیل کنید.
علاوه بر این، شما میتوانید به کمک post type سفارشی سازی شده، برخی از ویژگیهای منحصر به فرد را در سایت خود معرفی کنید تا از سایر سایتها متمایز شود.
ما در این مقاله قصد داریم نحوهی ساخت پست تایپ را بدون استفاده از افزونه و به کمک افزونه Custom Post Type UI آموزش دهیم.
در صورت تمایل میتوانید از مقاله طراحی فروشگاه بدون کدنویسی دیدن کنید و پیشنهادات و نظرات خود را در کامنت بنویسید.
شما همچنین امکان استفاده از پشتیبانی وردپرس بهصورت رایگان را در مجموعهی المنتورسایت خواهید داشت.
پست تایپ وردپرس چیست؟
با وردپرس میتوان انواع مختلفی از محتوا ایجاد کرد. یک محتوا را پست نیز میگویند، همچنین این پست یک نوع پست خاص به حساب میآید. بهطورکلی ، واژهی پست میتواند به هر نوع محتوایی در وردپرس اشاره کند.
Post type ها در یک جدول پایگاه داده (wp_posts) ذخیره و با ستونی به نام post_type از همدیگر متمایز میشوند.
بهطور پیش فرض ، پنج پست تایپ در وردپرس موجود است :
- نوشته (post type :”پست”)
- صفحهیا برگه (post type :”صفحه”)
- پیوست یا ضمیمه (post type :”پیوست”)
- تجدید نظر یا بازبینی ( post type: “تجدید نظر”)
- منوی ناوبری ( post type : ” nav_menu_item “)
شما میتوانید هر نوع پست تایپی را بسازید و هر اسمی بخواهید برای آنها انتخاب کنید. درنتیجه به آنها پست تایپهای سفارشی گفته میشود.
مثلاً پست تایپها میتواند Portfolio یا سبد و نمونه کار، Testimonials یا نظرات کاربران، Products یا محصولات و غیره باشند.
یک post type سفارشی را میتوان با استفاده از تابع () Register_post_type به وردپرس اضافه کرد.
این کار بسیار ساده است و نیازی به استفاده از هیچ افزونه ای برای آن ندارید و میتوانید پست تایپهای سفارشی خود را بدون استفاده از افزونه ثبت کنید.
مراحل ساخت پست تایپ سفارشی | بدون افزونه
همانطور که در بالا اشاره کردیم از تابع () Register_post_type برای ایجاد یک پست تایپ استفاده میشود و فقط از طریق اقدام init فراخوانی میشود. در زمان ایجاد یک پست تایپ ، همیشه طبقهبندیهایی را به کمک تابع () Register_taxonomy از آن تعریف و ثبت کنید.
کافیست شما فایل functions.php قالب فعلی خود را تغییر دهید. این مسیر را دنبال کنید و فایل /wp-content/themes/theme_name/functions.php را باز کرده و کد زیر را در این فایل قرار دهید.
// Product Custom Post Type
function product_init() {
// set up product labels
$labels = array(
‘name’ => ‘Products’,
‘singular_name’ => ‘Product’,
‘add_new’ => ‘Add New Product’,
‘add_new_item’ => ‘Add New Product’,
‘edit_item’ => ‘Edit Product’,
‘new_item’ => ‘New Product’,
‘all_items’ => ‘All Products’,
‘view_item’ => ‘View Product’,
‘search_items’ => ‘Search Products’,
‘not_found’ => ‘No Products Found’,
‘not_found_in_trash’ => ‘No Products found in Trash’,
‘parent_item_colon’ => ”,
‘menu_name’ => ‘Products’,
);
// register post type
$args = array(
‘labels’ => $labels,
‘public’ => true,
‘has_archive’ => true,
‘show_ui’ => true,
‘capability_type’ => ‘post’,
‘hierarchical’ => false,
‘rewrite’ => array(‘slug’ => ‘product’),
‘query_var’ => true,
‘menu_icon’ => ‘dashicons-randomize’,
‘supports’ => array(
‘title’,
‘editor’,
‘excerpt’,
‘trackbacks’,
‘custom-fields’,
‘comments’,
‘revisions’,
‘thumbnail’,
‘author’,
‘page-attributes’
)
);
register_post_type( ‘product’, $args );
// register taxonomy
register_taxonomy(‘product_category’, ‘product’, array(‘hierarchical’ => true, ‘label’ =>
‘Category’, ‘query_var’ => true, ‘rewrite’ => array( ‘slug’ => ‘product-category’ )));
}
add_action( ‘init’, ‘product_init’ );
register_post_type() function:
<?php register_post_type( $post_type, $args ); ?>
تابع () Register_post_type دو پارامتر ، $ post_type و $ args را میپذیرد:
- $ post_type : پست تایپ سفارشی خود را وارد کنید
- $ args : مجموعهای از آرگومانها یا آرایه هاست
register_taxonomy() function:
<?php register_taxonomy ( $taxonomy, $object_type, $args ); ?>
تابع () register_taxonomy سه پارامتر، $ taxonomy ، $ object_type و $ args را میپذیرد.
- $ taxonomy :نام طبقهبندی
- $ object_type : نوع شی برای طبقهبندی آن
- $ args : مجموعهای از آرگومانها و آرایه ها
هر دو تابع register_post_type و register_taxonomy آرایههای زیر را در پارامتر $args قبول میکنند :
- label _ یک نام توصیفی برای پست تایپ
- labels – مجموعهای از برچسب ها برای پست تایپ
- description – شرح مختصری از پست تایپ
- public – قابلیت بازدید برای نویسندگان و خوانندگان
- show_ui – پیش فرض برای پست تایپ در پنل مدیریت ایجاد UI این که آیا یک میکند یا خیر؟
- show_in_nav_menus – آیا پست تایپ در منوی ناوبری موجود است؟
- show_in_menu – آیا پست تایپ در منوی مدیریت ظاهر میشود یا خیر؟
- show_in_admin_bar – پست تایپ موجود در نوار مدیریت
- menu_position – موقعیت پست تایپ به ترتیب منو
- menu_icon – نماد و آیکن منو را مشخص کنید
- capability_type_ این رشته برای ایجاد قابلیتهای خواندن ، ویرایش و حذف استفاده میشود
- capabilities – مجموعهای از قابلیتها برای پست تایپ
- map_meta_cap – آیا از قابلیت پیش فرض داخلی استفاده میشود یا خیر
- hierarchical – آیا پست تایپ سلسله مراتبی است
- supports – نام مستعار برای تماس مستقیم () add_post_type_support
- register_meta_box_cb – یک تابع پاسخ به تماس ارائه دهید که هنگام تنظیم متا باکسها برای ویرایش فرم فراخوانی میشود
- taxonomies – مجموعهای از طبقهبندیهای ثبت شده
- has_archive – بایگانی پست تایپ را فعال میکند
- permalink_epmask – بازنویسی پیش فرض endpoint bitmasks
- rewrite – باعث مدیریت بازنویسیها برای پست تایپ میشود
- query_var – query_var را برای پست تایپ تنظیم میکند
- can_export – آیا میتوان پست تایپ را صادر کرد.
- show_in_rest – آیا پست تایپ در REST API نمایان است یا خیر ؟
- rest_base – در صورت دسترسی از REST API سرعت کند میشود.
- rest_controller_class – یک کنترل کننده سفارشی اختیاری به جای WP_REST_Posts_Controller
- _builtin- پست تایپ بومی است یا “داخلی”
- _edit_link – لینک برای ویرایش ورودی با پست
پس از قرار دادن کد نمونه در تابع function.php قالب فعلی خود، خواهید دید که منوی محصولات در سمت چپ پنل مدیریت وردپرس ظاهر میشود. این منوی پست تایپ سفارشی به شما امکان میدهد محتوای جداگانه را برای پست تایپ مشاهده، اضافه، ویرایش وحذف کنید. همچنین ، میتوانید دستههای سفارشی post type را نیز اضافه و مدیریت کنید.
مراحل ساخت پست تایپ سفارشی | به کمک افزونه Custom Post Type UI
این افزونه به شما امکان میدهد :
- پست تایپهای و طبقهبندیهای سفارشیشده خود را ایجاد و پیکربندی کنید.
- طبقهبندیهای داخلی و سفارشی را ضمیمه پست تایپها کنید.
- برچسب گذاری پیشرفته برای پست تایپها داشته باشید.
- مدیریت نمایش پست تایپها و طبقهبندیهای جدید شما را برعهده ی شما میگذارد. و خود افزونه انجام نمیدهد.
یکی از محبوبترین افزونهها برای پستهای سفارشی و طبقهبندی در فهرست افزونههای رسمی ، Custom Post Type UI است که مجموعهای از گزینهها و ویژگیهای عالی را بهصورت رایگان ارائه میدهد.
استفاده از این افزونه بسیار آسان است. پس از نصب ، یک داشبورد زیبا برای کار خواهید داشت. در این قسمت همه گزینهها و ویژگیهای افزونه به راحتی در دسترس هستند.
این افزونه به شما امکان میدهد پست تایپهای و طبقهبندیهای جدید مربوطه ایجاد کنید. همچنین میتوانید post type هایی را که قبلاً در سایت خود دارید ویرایش کنید.
نکته جالب دیگر در مورد این افزونه این است که میتوانید یک پست سفارشی که قبلاً در سایت دیگری دارید را import یا export کنید.
تنها نقطه ضعف افزونه این است که نمایش پست تایپهای ثبت شده یا طبقهبندیها در قالب فعلی شما را مدیریت نمیکند. فقط آنها را برای شما ثبت خواهد کرد.
نحوهی کار با افزونه Custom Post Type UI برای ساخت پست تایپ
پس از نصب افزونه، گزینه “CPT UI” به پنل پیشخوان وردپرس شما اضافه خواهد شد.
کافیست بر روی گزینه “Add / Edit Post Types” < CPT UI کلیک کنید و در این بخش با یک فرم مواجه خواهید شد که باید فرم را تکمیل نمایید.
برای مثال در لیست زیر موارد را برای ساخت یک پست تایپ به نام پروژهها تکمیل کردیم و به جای آن شما میتوانید از هر پست تایپ دیگری استفاده کنید :
Post Type Slug: در این فیلد پیوند یکتا برای پست تایپ دلخواه خود درج کنید.
Plural Label: در این فیلد شما باید عنوان منوی اصلی در پیشخوان وردپرس برای نمایش پست تایپ خود را وارد کنید.
Singular Label: در این قسمت عنوان دلخواه خود را برای زیر منوی پست تایپ وارد کنید.
در نهایت پس از انجام این سه قسمت بر روی دکمه Add post Type کلیک کنید تا پست تایپ شما ایجاد شود.
جمعبندی نهایی
شما برای ساخت یک پست سفارشی مثل “پروژهها”، “کتابها” یا “موزیکها” و … نیاز به یک ویژگی در وردپرس به نام پست تایپ دارید.
Post type ها یک صفحهی سفارشیشده برای نوشته ، برگه ها و یا حتی محصولات هستند. ما در این مقاله دو راه برای ساخت این پست تایپها را توضیح دادیم. روشی که بهصورت دستی باید در تابع function.phpقالب خود وارد کنید و روشی که به کمک افزونه میتوانید انجام دهید.
در صورت تمایل میتوانید به مقاله آموزش المنتور و همچنین مهمترین ابزارهای تست سرعت وبسایت نیز مراجعه کنید.
منبع : codexworld , codeinwp
14 پاسخ
سلام خسته نباشید
من با CPT UI پست تایپ جدید خودم را ساختم حالا قصد دارم آرشیو مربوط به آن را با المنتور طراحی کنم ولی مشکلی وجود داره
من نمیتونم انتخاب کنم فقط نوشته های مربوط به این پست تایپ را آرشیو کند
سلام خدمت شما تیک آرشیو دارد را بزنید تا برای شما در شرط گذاری نمایش دهد .
سلام وقت بخیر برای پست تایپ های سفارشی شده افزونه جت انجین مناسب تر نیست؟
سلام درود بر شما
اگر با افزونه جت کار میکنید بهتره از پست تایپ خودش استفاده کنید اما فقط برای این موضوع خیر مناسب نیست
سلام
من پست تایپ پروژه ها رو اضافه کردم
ولی افزودن جدید نداره
فقط گزینه دسته ها و برچسب ها رو داره
چطور میتونم افزودن جدید رو هم اضافه کنم؟
سلام درود بر شما
یک جای کار را به درستی انجام نداده اید وگرنه مشکلی ندارند
سلام من پست تایپ جدید ساختم و کار میکنه میکنه اما وقتی یک نوشته جدید ایجاد میکنم و وارد اون نوشته میشم میگه برگه پیدا نشد میشه راهنمایی کنید
سلام لطفا از قسمت پیشخوان > تنظیمات > روی پیوند های یکتا کلیک کنید سپس بروزرسانی را بزنید و مجدد چک کنید
درود
پست تایپ رو از راههای مختلف میشه درست کرد با افزونه ها یا کد ، مسئله اصلی اینکه برگه sengel اختصاصی هر پست تایپ رو چطور تعریف کنیم که مشخص بشه اون برگه برای کدوم پست تایپ ، و بعد از ارسال محتوا در اون پست تایپ از استایل مورد نظر در اون برگه استفاده کنه
لطفا راهنمای دقیق داشته باشید
سلام وقت بخیر
زمانی که پست تایپ جدید درست می کنید در قسمت قالب های ذخیره شده نوع آن را که آرشیو و یا صفحه داخلی می باشد را از پست تایپ ایجاد شده انتخاب می کنید
/wp-content/themes/theme_name/functions.php همچین مسیری برای من نیست
بعد اینکه چجوری باید کد رو توش وارد کنیم ؟
سلام
theme_name نام پوشه قالب شما هستش .
ممنونم ولی کد رو چجوری وارد این فایل functions کنیم ؟
از قسمت پوسته ها در پیخوان روی ویرایش پرونده پوسته شوید و در آن قسمت ویرایش کنید
یادتان باشد روی قالب چایلد این کار را انجام دهید .