پست تایپ وردپرس چیست؟ ایجاد Custom Post Type وردپرس

3.7 / 5. تعداد رای: 10

پست تایپ وردپرس چیست؟
پست تایپ وردپرس چیست؟

پست تایپ وردپرس نوعی پست سفارشی‌سازی شده در وردپرس مثل نوشته‌ها، برگه‌ها و یا هر چیز دیگری است. مثلاً برگه‌ها نوعی از پست تایپ‌های وردپرس هستند که بانام page شناخته می‌شوند. درواقع این پست تایپ‌ها وردپرس را از یک سیستم وبلاگ دهی به یک سیستم مدیریت محتوای قوی تبدیل کرد.

توسط پست تایپ شما می‌توانید انواع مطالب خود را با اهداف مدنظر خود در سایتتان قرار دهید. یعنی اگر شما بخواهید برخی از مطالب سایتتان از دیگر مطالب متفاوت باشد؛ و نحوه متفاوتی داشته باشد می‌توانید از این امکان استفاده کنید. درواقع همین ویژگی وردپرس این سیستم مدیریت محتوا را از سایر سیستم‌ها متمایز کرده است. و سبب محبوبیت این سیستم بین وب‌مستران گردیده است.

شما به‌عنوان مدیر سایت حتی با داشتن اطلاعات کمی از کد نویسی به‌سادگی می‌توانید از پست تایپ استفاده کنید. و با این کار خود محتوای متفاوتی را به کاربران خود ارائه دهید.

پست تایپ وردپرس چیست؟

با استفاده از پست تایپ وردپرس شما می‌توانید در یک بخش جدا از وردپرس یک نوشته و محتوای خاص قرار دهید. در حالت کلی و به‌صورت پیش‌فرض وردپرس دو نوع post type برای تولید محتوا دارد. این دو نوع پست تایپ شامل برگه و نوشته هستند. اما بااین‌حال شما می‌توانید هر نوع محتوایی که خواستید به‌صورت سفارشی وارد کنید. به این کار پست تایپ سفارشی می‌گویند.

وردپرس به‌صورت پیش‌فرض دارای پنج نوع پست تایپ سفارشی است که آن‌ها عبارت‌اند از Nav – Attachment – page – post – Menu. که از میان آن‌ها post و page از بقیه پرکاربردتر هستند. با استفاده از این پست تایپ‌ها شما می‌توانید مطالب متفاوتی در سایتتان قرار دهید که با یکدیگر متفاوت هستند و همچنین می‌توانید هر نوع نوشته خاص را در سایت خود قرار دهید. ایجاد یک نوشته خاص به شما این امکان را می‌دهد که یک پست تایپ سفارشی ایجاد کنید.

توسط پست تایپ شما می‌توانید محتوای دلخواه خود را سفارشی‌سازی کنید و هرگونه پست که مدنظر دارید را بسازید. با این کار خود می‌توانید بین مطالب سایتتان تفاوت ایجاد کنید. شما می‌توانید هم به‌صورت دستی و هم توسط افزونه این کار را انجام دهید. پس شما می‌توانید توسط پست تایپ پست‌های سفارشی خود را ایجاد کرده و در هرکجای سایتتان از آن‌ها استفاده کنید.

بعضی‌اوقات شما نیاز دارید یک محتوا با ویژگی‌های خاص خود ایجاد کنید؛ درنتیجه شما به پست تایپ نیاز پیدا می‌کنید. در این مقاله خدمت شما دوستان میهن وردپرسی نحوه استفاده از پست تایپ را به‌صورت دستی آموزش می‌دهیم؛ که شما توسط آن می‌توانید به‌راحتی و بدون نیاز به آشنایی با کد نویسی پست‌های خود را سفارشی‌سازی کنید.

ایجاد Custom Post Type وردپرس بدون نصب افزونه

با استفاده از این امکان به‌صورت دستی دیگر نیاز به خرید افزونه ندارید و از بابت نیاز به نگرانی نیست. استفاده از افزونه ممکن است سبب ایجاد مشکلات امنیتی برای شما شود. و یا ممکن است پس از حذف افزونه دیگر شما نتوانید از قابلیت آن استفاده کنید. همچنین افزونه نیاز به آپدیت و پشتیبانی دارد که ممکن است در استفاده از آن به مشکل بخورید. استفاده از کد نویسی هیچ محدودیتی ندارد و شما به‌راحتی می‌توانید از آن استفاده کنید. بنابراین بهترین روش این است که به‌صورت دستی از این قابلیت استفاده کنید و پست تایپ سفارشی خود را ایجاد کنید.

شما می‌توانید پست‌های خود را سفارشی‌سازی کنید و امکانات و ویژگی‌هایی به آن اضافه کنید. و از قابلیت‌های آن استفاده کنید. سفارشی‌سازی به شما این امکان را می‌دهد تا فیلدهای اختصاصی خود را ایجاد کنید و به‌صورت منحصربه‌فردی آن‌ها را در سایتتان نمایش دهید.

اکنون شما می‌توانید برای وردپرس، بخش‌های جدیدی ایجاد کنید؛ به‌عنوان‌مثال نمونه کارها، محصولات، نظرات مشتریان و هر پست تایپ سفارشی دیگری را بسازید. به‌عنوان‌مثال شما امکان این را دارید که بدون استفاده از افزونه بخش نمونه کارها را به سایتتان اضافه کنید. اکنون با استفاده از تعریف پست تایپ و آشنایی با مفهوم آن می‌توانیم یک پست تایپ سفارشی ایجاد کنیم.

ایجاد پست تایپ وردپرس

برای ایجاد پست تایپ در وردپرس و آموزش آن شما فرض کنید که به‌عنوان‌مثال یک سایت فیلم و سریال دارید؛ و قصد دارید پست تایپ جدیدی بنام فیلم‌ها به وردپرس اضافه کنید.

برای این کار ابتدا در پنل مدیریت سایت وردپرس خود ابتدا وارد بخش نمایش > ویرایشگر شده و فایل functions.php سایت خود را بازکنید. سپس کد زیر را به انتهای functions.php اضافه کنید قبل از?>

function createmihanwp_posttype() {
 register_post_type( 'movies',
 array(
 'labels' => array(
 'name' => __( 'Movies' ),
 'singular_name' => __( 'Movie' )
 ),
 'public' => true,
 'has_archive' => true,
 'rewrite' => array('slug' => 'movies'),
 )
 );
}
add_action( 'init', 'createmihanwp_posttype' );

بعدازاینکه روند بالا را طبق آموزشی که برای شما ذکر کردیم طی کردید، و کدهایی که گفته‌شده را وارد کردید کافی است از طریق کد زیر تابع پست تایپ را تعریف کنید؛ علاوه بر این باید برچسب‌ها و متن‌های نمایشی در بخش پست تایپ را تعریف کنید. به این نکته توجه داشته باشید شما از طریق کد می‌توانید تنظیمات پست را تغییر دهید، با استفاده از کدی که در زیر برای شما آورده‌ایم می‌توانید در تنظیمات پست تایپ تغییرات دلخواه خود را به‌سادگی وارد نمایید، پس کافی است کد زیر را کپی کنید به همین راحتی!

/*
* Creating a function to create our CPT
*/

function custom_post_type() {

// Set UI labels for Custom Post Type
 $labels = array(
 'name'                => _x( 'Movies', 'Post Type General Name', 'twentythirteen' ),
 'singular_name'       => _x( 'Movie', 'Post Type Singular Name', 'twentythirteen' ),
 'menu_name'           => __( 'Movies', 'twentythirteen' ),
 'parent_item_colon'   => __( 'Parent Movie', 'twentythirteen' ),
 'all_items'           => __( 'All Movies', 'twentythirteen' ),
 'view_item'           => __( 'View Movie', 'twentythirteen' ),
 'add_new_item'        => __( 'Add New Movie', 'twentythirteen' ),
 'add_new'             => __( 'Add New', 'twentythirteen' ),
 'edit_item'           => __( 'Edit Movie', 'twentythirteen' ),
 'update_item'         => __( 'Update Movie', 'twentythirteen' ),
 'search_items'        => __( 'Search Movie', 'twentythirteen' ),
 'not_found'           => __( 'Not Found', 'twentythirteen' ),
 'not_found_in_trash'  => __( 'Not found in Trash', 'twentythirteen' ),
 );
 
// Set other options for Custom Post Type
 
 $args = array(
 'label'               => __( 'movies', 'twentythirteen' ),
 'description'         => __( 'Movie news and reviews', 'twentythirteen' ),
 'labels'              => $labels,
 // Features this CPT supports in Post Editor
 'supports'            => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),
 // You can associate this CPT with a taxonomy or custom taxonomy. 
 'taxonomies'          => array( 'genres' ),
 /* A hierarchical CPT is like Pages and can have
 * Parent and child items. A non-hierarchical CPT
 * is like Posts.
 */ 
 'hierarchical'        => false,
 'public'              => true,
 'show_ui'             => true,
 'show_in_menu'        => true,
 'show_in_nav_menus'   => true,
 'show_in_admin_bar'   => true,
 'menu_position'       => 5,
 'can_export'          => true,
 'has_archive'         => true,
 'exclude_from_search' => false,
 'publicly_queryable'  => true,
 'capability_type'     => 'page',
 );
 
 // Registering your Custom Post Type
 register_post_type( 'movies', $args );

}

/* Hook into the 'init' action so that the function
* Containing our post type registration is not 
* unnecessarily executed. 
*/

add_action( 'init', 'custom_post_type', 0 );

خب حالا که همه موارد را گام‌به‌گام انجام دادید می‌توانید مشاهده کنید که پست تایپ سفارشی شما با تغییرات موردنظرتان به سایتتان اضافه‌شده است. و شما این امکان را دارید که در بخش‌های مختلف منوها و ابزارک‌های سایت خود استفاده کنید، خب به همین راحتی توانستید با استفاده از چند کد و یک آموزش کوتاه به هدف خود برسید.

موفق باشید.

نکته خاصی هست که این مقاله رو تکمیل‌تر کنه؟

  1. U334018 ۱۲ اردیبهشت ۱۴۰۳

    باید به جای twentythirteen در کد، اسم قالب خودمون رو بگذاریم یا لازم نیست؟

  2. U334018 ۳ اسفند ۱۴۰۲

    سلام
    باید حتما نام هایی که در کد وجود دارد را مثل Movies تغییر دهیم یا لازم نیست ؟

  3. U17052 ۱۸ دی ۱۴۰۱

    با احترام
    کارهایی گفته شده انجام شد ولی در پست تایپ جدید زمانی که نوشتهٔ تازه را ایجاد میکنیم گزینه انتخاب دسته بندی وجود ندارد( پالت دسته ها)
    لطفا راهنمایی بفرمایید

  4. U13015 ۱۴ دی ۱۳۹۹

    سلام
    آیا میشه کاری کرد که وردپرس یک المان که با صفحه ساز ساخته شده رو تحت عنوان محصول بشناسه؟
    مثلاً با المنتور کارت برای محصولات، تهیه کنیم (شبیه سایت فرانش) و پست تایپ محصول براش تعریف کنیم و بگیم ازین به بعد این کارت ها رو به عنوان محصولات ما در نظر بگیر

    • Reza Rad رضا راد ۱۵ دی ۱۳۹۹

      درود بر شما باید المنت مورد نیاز قابلیت انتخاب پست تایپ داشته باشه.

      • U34436 ۱۵ دی ۱۳۹۹

        سلام..من زیاد وارد نیستم
        راستش میخوام تو سایتم یه مقاله معرفی محصول بذارم و زیر همون نوشته چندین محصول دیگه رو هم اضافه کنم..مثل این مقاله:
        با این روش میتونم این کار رو انجام بدم؟

  5. U33216 ۱۸ آذر ۱۳۹۹

    با سلام و خسته نباشید

    من دقیقا مثل آموزش کد رو در فایل فانکشن تم فرزند قراردادم همه چیز درست کار میکنه فقط تصویر شاخص رو برای من توی صفحه اضافه کردن پست یا ویرایش نمیاره. چیکار باید بکنم؟

    ممنون

    • Reza Rad رضا راد ۱۸ آذر ۱۳۹۹

      سلام به supports باید مقدار thumbnail بدید

      • U33216 ۱۹ آذر ۱۳۹۹

        خیلی ممنون
        مشکلم حل شد.

        فقط الان یک مشکل جدید دارم. من سه تا پست تایپ مختلف درست کردم برای سه بخش جداگانه “پروژه ها” ، “خدمات” ، “محصولات” وقتی برای یکی از این پست تاپی ها دسته بندی تعریف میکنم برای همه دوتای دیگه هم همون ه رو اضافه میکنه. چجوری باید حلش بکنم؟

        ممنون

  6. U31316 ۹ آبان ۱۳۹۹

    سلام. من متاسفانه متوجه این آموزش نشدم . من هر دو کد نوشته شده رو داخل فایل فانکشن خودم کپی کردم اما بعد از سیو با ارور مواجه شدم .. محل کپی هر کد میشه لطفا بفرمایید. هم چنین این کدها فانکشن هستند و باید ی جایی فراخوانده بشن تا عمل کنن. این فراخوانی باید کجا صورت بگیره ؟ ممنون میشم راهنمایی ام کنید.

    • تیم پشتیبانی تیم پشتیبانی ۱۰ آبان ۱۳۹۹

      با سلام
      با چه اروری مواجه شدید؟

      • U31316 ۱۰ آبان ۱۳۹۹

        سلام دوباره..ارور رفع شد و یک پست تایپ به اسم فیلم اضافه شد به پنل وردپرسم. اما الان به یه مشکل جدید برخوردم و اینکه با انتشار یک محتوای تست از طریق این پست تایپ جدید دیگه محتوهایی که از طریق خود نوشته های وردپرس منتشر کردم نشون داده نشد. سوالم اینجاست که چطور باید کنترلش کنم برای مثال من ی بخشی در سایتم دارم به اسم نمونه کارها میخوام داینامیک بشه ولی از کجا باید به وردپرس بفهمونم مطالبی که داخل پست تایپ جدیدم منتشر میکنم را در قسمت نمونه کارها نمایش بده..ممنون میشم راهنمایی کنید

        • تیم پشتیبانی تیم پشتیبانی ۱۰ آبان ۱۳۹۹

          این موضوع نیاز به دانش برنامه نویسی دارد. شما باید در قالب خود پست تایپ ها را فراخوانی کنید که در دوره صفر تا صد طراحی سایت این مباحث آموزش داده شده

  7. کاربر مهمان ۱۸ بهمن ۱۳۹۸

    سلام
    ممنون از آموزشتون ، عالی بود.
    فقط یه سوال…..
    چجوری صفحه بندی یا همون pagination رو به پست تایپمون اضافه کنیم؟

  8. کاربر مهمان ۱۳ بهمن ۱۳۹۸

    سلام وقت بخیر
    من یک سایت فیلم و سریال با قالب toroplay آماده کردم ولی یک مشکلی که هست اینه در صفحه سریال هاش برگه هایی که ساختم رو هم نشون میده (علاوه بر سریال ها تمام برگه ها رو هم جزی از سریال ها میشناسه) این مشکل از چیه و چطور میتونم رفعش کنم؟
    لطفا اگر راه قصد ارائه راه حل برای رفع این مورد دارید به صورت دقیق و ساده بیان کنید ممنون میشم

    • تیم پشتیبانی تیم پشتیبانی ۱۳ بهمن ۱۳۹۸

      با سلام
      اگر قالب سایت را از ماتهیه کرده اید به بخش پشتیبانی تیکت ارسال بفرمایید تا مشکل بررسی شود

  9. کاربر مهمان ۱۶ مهر ۱۳۹۷

    آقای حسینی راد ..سلام عرض شد خدمت شما
    سپاس فراوان بابات آموزش خوبتان..
    فقط چند سوال از شخص شما دارم..پاسخ گو باشید ممنون میشوم.
    1_قالبی که من استفاده میکنم هم در زمینه ی فیلم هست فقط با این تفاوت که چندین پست تایپ سفارشی اعم از فیلم و سریال و .. را خوده قالب اضافه کرده است..برای ساختن این پست تایپ ها هم هیچ کدی درون فایل Function قرار نداد..به این صورت داخل قالب هستند :
    single-movies.php
    single-Tvshows.php
    فقط بنده میخواهم برچسب هارا به این پست تایپ ها اضافه کنم..تنها کاری که توانستم انجام دهم دو قطعه کد بر مبنای Post_tags داخل فایل فانکشن قرار دادم که برچسب هارا به این پست تایپ ها اضافه کرد.
    بعد از این که نوشته هارا برچسب گذاری میکنم و انتشار میدم..در انتهای نوشته اصلا برچسبی دیده نمیشود..که آن هم یک قطعه کد قرار دادم داخل پست تایپ__مثلا اگر نوشته برای فیلم بود کد را داخل پست تایپ فیلم قرار دادم.
    بعد از قرار دادن کد..برچسب ها در نوشته منتشر میشود ولی با این تفاوت که در قسمت بالایی پست هست و با منو های اصلی هاست یکی میشود و به هم میریزد.
    و بعد روی هر کدام از برچسب ها کلیک میکنم به همان پست لینک نمیشود..میرود به یک صفحه جداگانه و مینویسد محتوایی یافت نشد و error میدهد.
    حالا از شما درخواست میکنم اگر امکانش هست بندرو در این مشکل راهنمایی بفرمایید.
    هر چی تلاش کردم به نتیجه ای نرسیدم.

    • Reza Rad رضا راد ۱۶ مهر ۱۳۹۷

      سلام الان سایت شما مشکلی با برچسب ها ندارد و برچسب اضافه شده اگر میخواید برچسب توی پست تایپ سفارشی اضافه بشه باید از php the_tags توی همین فایل های single-movies.php استفاده کنید تا نمایش داده شود.

  10. کاربر مهمان ۲۷ اردیبهشت ۱۳۹۷

    سلام

    چطور میتونم یکسری فیلد متنی زیر بخش نوشته های تکی و یا کاستوم پست تایپ ایجاد شده اضافه کنم که راحت بتونم با وارد کردن مقدار توی فیلد ها – اون مقدارها را یا توی نوشته و یا توی کستوم پست تایپم نشون بدم به کاربر ؟

    مثلا

    نام کتاب :
    تعداد صفحات :
    سال انتشار :

    • U11404 ۲۷ اردیبهشت ۱۳۹۷

      سلام
      می توانید از زمینه های دلخواه این کار را انجام دهید.
      پیشنهاد میکنیم این آموزش را ببینید. هر آنچه برای یک سایت نیاز داشته باشید در آن گفته شده است :
      https://mihanwp.com/0-to-100/

  11. کاربر مهمان ۲۶ فروردین ۱۳۹۷

    ممنون بابت آموزش ها
    سلام من برای تمرین همین کد های آموزش رو در فانکشن پوسته فرزند قرار دادم . بخش movies درست شد افزودن نوشته زدم و یه پست درست کردم.اما مینویسه که نوشته پیدا نشد . مشکل از چی میتونه باشه؟ اگه اون فانکشن ها رو در پوسته اصلی قرار بدم برای پوسته بعد از آپدیت مشکل پیش نمیاد ؟
    یه سوالیم تو بخش ترجمه پرسیده بودم آقا رضا که جواب ندادین متاسفانه.

  12. کاربر مهمان ۲۳ آذر ۱۳۹۶

    یه سوال دیگه، پست تایپای سفارشی از نظر سئو چجورین؟ نسبت به نوشته های معمولی بدتر میشن؟

  13. کاربر مهمان ۲۳ آذر ۱۳۹۶

    سلام، من یه پست تایپ سفارشی ایجاد کردم، ولی وقتی تو سایت روی یه دسته کلیک میکنم، فقط نوشته هایی رو که جزو اون دسته هستن نشون میده، پستای سفارشی که جزو اون دسته هستن رو نشون نمیده، چیکار باید بکنم؟

    • Reza Rad رضا راد ۲۳ آذر ۱۳۹۶

      سلام هر پست تایپ خودش دسته بندی هم داره که باید پستش رو به دسته خودش بدید نه دسته نوشته ها

  14. کاربر مهمان ۸ آذر ۱۳۹۶

    سلام
    خسته نباشید
    یک سوال داشتم و خیلی سرچ کردم مشکلم برطرف نشد ممنون میشم در صورت امکان بنده رو راهنمایی کنید
    یک قالب برای کانال های تلگرامی آماده کردم و برای کانال های ویژه یک کاستوم پست اختصاصی نوشتم و از دسته بندی های نوشته واسش استفاده کردم ، حالا می خوام کسی که روی دسته بندی مثلا تفریحی کلیک میکنه اول مطالب موجود در پست تایپ کانال های ویژه نمایش داده بشه بعد کانال های معمولی
    کدش رو نوشتم ولی مشکل من اینه که در دسته بندی مثلا تفریحی کل مطالب پست تایپ ویژه رو نمایش میده
    چطور می تونم تنظیم کنم فقط مطالب همون دسته بندی ها رو اضافه کنه ؟
    این کدی هست که گذاشتم :
    ‘weblog’ ) ); ?>
    have_posts() ) : $loop->the_post(); ?>
    a href=””>

    ممنون میشم بنده رو راهنمایی کنید

  15. کاربر مهمان ۱۵ فروردین ۱۳۹۶

    سلامخب خروجی این پست تایپ کجاست ؟ الان مثلا یه فیلم جدید ایجاد کردم که متن داره و تصویر شاخصاین کجا میره بعد ایجاد کردنش ؟ اگر بخوام یه جای خاص نشون بده باید چیکار کنم ؟مرسی

    • Reza Rad رضا راد ۱۵ فروردین ۱۳۹۶

      سلام توی yoursite.ir/videos/ در واقع خودش آدرس میگیره و باید این ادرس را در فهرست اضافه کنید

  16. کاربر مهمان ۱۷ مهر ۱۳۹۵

    سلام
    از مطلبتون کمال تشکر را دارم
    من در حال طراحی قالبی برای سایتم هستم که موضوع آن دانلود اپلیکیشن های اندروید می باشد
    من می خواهم این قابلیت برای هر پست وجود داشته باشد که من بتوانم چند ورژن از اپلیکیشن را هر بار در پست ادد کنم
    این کار را به چه صورتی می توانم انجام دهم و از چه ویژگی وردپرس باید استفاده کنم
    خیلی ممنون و متشکر

  17. U3564 ۲۲ شهریور ۱۳۹۵

    سلام. نمیدونم چرا توضیحات رو کامل نمیدین
    کدهای دومی که معرفی کردین اصلا اشاره نشده که این کدها رو تو کدوم فایل قرار بدیم و اگه فایل جدید باید بسازیم اسمشو بگید یا یکم توضیح بدید خب