وردپرس

ایجاد پست تایپ سفارشی یا Custom Post Type در وردپرس

خیلی از اوقات برای شما اتفاق افتاده که بخواهید انواع جدید محتوا خارج از محتواهای پیش فرض وردپرس (نوشته‌ها و برگه‌ها) داشته باشید. یا اینکه می خواهید یک محتوای شخصی سازی شده با ویژگی ها و فیلدهای جدید داشته باشید، در این چنین مواقع ما نیاز داریم که از پست تایپ سفارشی یا همان Custom Post Type در وردپرس استفاده کنیم. شما در این مقاله از اینوپ یاد می گیرید که چگونه پست تایپ سفارشی اختصاصی خودتان را بدون افزونه ایجاد کنید. همچنین این توضیح را بدهیم که در این مقاله شما نیاز نیست با کدنویسی آشنا باشید و می توانید بدون حتی یک خط کدنویسی پست تایپ اختصاصی خودتان را داشته باشید.

پست تایپ سفارشی یا همان Custom Post Type چیست؟

پست تایپ سفارشی یا Custom Post Type یک نوع مدل ارائه محتوا مانند نوشته‌ها یا برگه‌ها در وردپرس است که شما می توانید محتوای سفارشی خود را در آن نمایش دهید.

در حالت پیش فرض وردپرس با پست تایپ های زیر کار می کند:

  • نوشته یا همان Post
  • برگه یا همان Page
  • پیوست یا همان Attachment
  • بازبینی یا همان Revision
  • فهرست یا همان Nav Menu

شما می توانید هر نوع پست تایپ سفارشی که می خواهید را در وردپرس ایجاد کنید به عنوان مثال شما می خواهید یک سایت آموزشی ایجاد کنید و می خواهید که دوره ها و آموزش های شما از بخش نوشته‌ها جدا باشند و دارای دسته بندی و برچسب جداگانه باشند (طبقه بندی سفارشی یا Custom Taxonomy را در مقاله دیگری به طور کامل برای شما شرح داده ایم) برای این کار لازم هست که شما یک پست تایپ سفارشی برای Course یا همان دوره های خود ایجاد کنید. از دیگر پست تایپ های سفارشی وردپرس می توان به Products یا محصولات که معمولا توسط افزونه ووکامرس ایجاد می شود، Portfolio یا نمونه کارها که برای این مورد هم افزونه های مختلفی وجود دارد، البته همانطور که گفتیم تمام اینها را می توانیم خودمان بدون افزونه نیز ایجاد کنیم.

نحوه ایجاد پست تایپ سفارشی در وردپرس

در وردپرس دو راه برای ایجاد پست تایپ سفارشی وجود دارد:

  • ایجاد پست تایپ سفارشی به کمک افزونه
  • ایجاد پست تایپ سفارشی به صورت دستی

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

ایجاد پست تایپ سفارشی به صورت دستی

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

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

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

برای ایجاد پست تایپ اختصاصی خودتان باید کد زیر را در فایل functions.php قالب خود قرار دهید، معمولا این فایل را در Cpanel یا Direct Admin می توانید در مسیر زیر پیدا کنید:

public_html/wp-content/themes/your-theme

your-theme نام قالب شماست.

// افزودن پست تایپ دوره‌ها
if ( ! function_exists('custom_post_type') ) {

// Register Custom Post Type
function custom_post_type() {

	$labels = array(
		'name'                  => 'دوره‌ها',
		'singular_name'         => 'دوره',
		'menu_name'             => 'دوره‌ها',
		'name_admin_bar'        => 'دوره‌ها',
		'archives'              => 'آرشیو دوره‌ها',
		'attributes'            => 'ویژگی‌ها',
		'parent_item_colon'     => 'دوره والد:',
		'all_items'             => 'همه‌ی دوره‌ها',
		'add_new_item'          => 'افزودن دوره جدید',
		'add_new'               => 'افزودن دوره',
		'new_item'              => 'دوره جدید',
		'edit_item'             => 'ویرایش',
		'update_item'           => 'بروزرسانی',
		'view_item'             => 'مشاهده دوره',
		'view_items'            => 'مشاهده دوره‌ها',
		'search_items'          => 'جستجو دوره',
		'not_found'             => 'یافت نشد!',
		'not_found_in_trash'    => 'چیزی در زباله‌دان یافت نشد.',
		'featured_image'        => 'تصویر شاخص',
		'set_featured_image'    => 'انتخاب تصویر شاخص',
		'remove_featured_image' => 'حذف تصویر شاخص',
		'use_featured_image'    => 'استفاده به عنوان تصویر شاخص',
		'insert_into_item'      => 'وارد کردن به دوره',
		'uploaded_to_this_item' => 'به این پست آپلود شد.',
		'items_list'            => 'لیست دوره‌ها',
		'items_list_navigation' => 'فهرست ناوبری',
		'filter_items_list'     => 'فیلتر لیست دوره‌ها',
	);
	$rewrite = array(
		'slug'                  => 'Course',
		'with_front'            => true,
		'pages'                 => true,
		'feeds'                 => true,
	);
	$args = array(
		'label'                 => __( 'دوره‌ها' ),
		'description'           => __( 'دوره‌های اینوپ' ),
		'labels'                => $labels,
		'supports'              => array( 'title', 'editor', 'thumbnail', 'comments', 'trackbacks', 'revisions', 'custom-fields', 'post-formats', 'author' ),
		'taxonomies'            => array( 'post_tag', 'course_cat' ),
		'hierarchical'          => false,
		'public'                => true,
		'show_ui'               => true,
		'show_in_menu'          => true,
		'menu_position'         => 5,
		'menu_icon'             => 'dashicons-admin-site',
		'show_in_admin_bar'     => true,
		'show_in_nav_menus'     => true,
		'Breadcrumb'            => true,
		'map_meta_cap'          => true,
		'can_export'            => true,
		'has_archive'           => true,
		'exclude_from_search'   => false,
		'publicly_queryable'    => true,
		'rewrite'               => $rewrite,
		'capability_type'       => 'post',
	);
	register_post_type( 'einop_Course', $args );
}

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

}

این کد چه کاری انجام می دهد؟

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

در کد بالا چه مواردی را لازم است بشناسید؟

از بالا به پایین بخش های مختلف این کد که نیاز هست بدانید را برای شما توضیح می دهیم:

  1. بخش name که نام پست تایپی هست که می خواهید ایجاد کنید و به صورت جمع آن را می نویسید.
  2. بخش singular_name که باید نام پست تایپ را به صورت مفرد بنویسید.
  3. بخش name_admin_bar در اینجا باید نامی که می خواهید در منوی پنل وردپرس نمایش داده شود را بنویسید.
  4. بخش slug در اینجا شما نامک مختص این پست تایپ را مشخص می کنید. نامکی که انتخاب می کنید باید یونیک باشد و با نامک های دیگر روی سایت شما یکی نباشد. همچنین به یاد داشته باشید بعد از اینکه پست تایپ را ایجاد کردید و کد آن را در فایل فانکشن قالب قرار دادید، پیوندهای یکتا را از تنظیمات وردپرس یکبار بروزرسانی کنید.
  5. بخش supports در اینجا شما به پست تایپ می گویید که چه ویژگی هایی را پشتیبانی کند به عنوان مثال این نوع پست ها نویسنده داشته باشند یا خیر، یا اینکه از کامنت ها پشتیبانی کند یا خیر، ما در این کد تمامی مواردی که امکان داشته وجود داشته باشند را گذاشته ایم.
  6. بخش taxonomies شما در اینجا طبقه بندی هایی که می خواهید پست تایپ از آن استفاده کند را به پست تایپ معرفی می کنید. در کدی که ما قرار داده ایم از دسته بندی های پیش فرض وردپرس (برچسب‌ها) که در نوشته‌ها وجود دارد و از طبقه بندی سفارشی (course_cat) که خودمان ساخته ایم استفاده کرده ایم ولی شما می توانید از طبقه بندی سفارشی خود برای این پست تایپ استفاده کنید که در مقاله ای دیگر این مورد را به طور کامل برای شما شرح داده ایم.
  7. بخش menu_position که محل نمایش پست تایپ در پنل وردپرس از بالا تعیین می کند مثلا در اینجا این شماره 5 است که نشان می دهد این پست تایپ به عنوان منوی پنجم نمایش داده می شود.
  8. بخش menu_icon در اینجا می توانید آیکونی که می خواهید برای این پست تایپ در پنل ادمین وردپرس نمایش داده شود را مشخص کنید.
  9. بخش has_archive که به پست تایپ اجازه می دهید صفحه آرشیو داشته باشد.
  10. بخش capability_type که نوع قابلیت های این پست تایپ رو تعیین می کنید که به چه شکل باشد ما در اینجا گفته مشابه نوشته های وردپرس باشد.

در نهایت می رسیم به بخش شیرین این مقاله، استفاده از ابزارهای آنلاین و آماده برای ساخت پست تایپ سفارشی یا Custom Post Type در وردپرس بدون کدنویسی و البته بدون افزونه!

ایجاد پست تایپ سفارشی با ابزار Post Type Generator

ابزاری که در اینجا به شما معرفی می شود تمامی مواردی که در بالا گفته شد را دارا می باشد و فقط لازم است که شما هر چیزی که نیاز دارید را به آن بگویید و در آخر خروجی کد مورد نظر را دریافت و در فایل functions.php قالب خود قرار دهید.

مراحل ایجاد پست تایپ سفارشی با Post Type Generator

1- اول از همه با کلیک روی لینک زیر به صفحه ساخت پست تایپ بروید:

Post Type Generator

2- بعد از باز شدن سایت با صفحه زیر روبه رو می شوید که باید روی تب General کلیک کنید:

ساخت پست تایپ سفارشی
ساخت پست تایپ سفارشی

بعد از کلیک صفحه زیر دیده می شود که می توانید یک نام اختصاصی برای فانکشن خودتون مشخص کنید یا اینکه کاری بهش نداشته باشید و در گزینه بعدی می توانید تعیین کنید که آیا از Child Theme پشتیبانی کند یا خیر که ما معمولا این گزینه را روی بله می گذاریم.

ساخت پست تایپ سفارشی
ساخت پست تایپ سفارشی

3- در مرحله بعد به تب Post Type بروید در این تب شما یک کلید برای پست تایپ خود مشخص می کنید که می توانید همان چیزی که پیش فرض هست رو هم تغییر ندهید، یک نام مفرد، یک نام جمع و یک توضیح هم برای پست تایپ خودتون مشخص کنید. به عنوان مثال در کد بالا نامی که ما تعیین کرده بودیم «دوره‌ها» بود. در بخش Link To Taxonomies در حالت پیش فرض دسته بندی و برچسب های وردپرس به پست تایپ شما اختصاص داده می شوند ولی می توانید نام طبقه بندی سفارشی خود را وارد کنید تا پست تایپ از دسته بندی اختصاصی خودش استفاده کند (البته طبقه بندی سفارشی را باید از قبل ایجاد کرده باشید) و در Hierarchical مشخص می کنید که پست تایپ شما از چه نوعی باشد که به صورت پیش فرض مشابه نوشته‌های وردپرس می باشد.

ساخت پست تایپ سفارشی
ساخت پست تایپ سفارشی

4- در بخش Labels موارد ظاهری را مشخص می کنید در واقع جملات و کلماتی که در ظاهر پست تایپ نمایش داده می شوند را در این مرحله تعیین می کنید اگر می خواهید به صورت فارسی باشند ترجمه موارد را بنویسید. نگران تغییر آنها نباشید هر زمان که بخواهید می توانید ترجمه های خودتون رو تغییر دهید.

ساخت پست تایپ سفارشی
ساخت پست تایپ سفارشی

5- در بخش Options می توانید مشخص کنید که پست تایپ شما از چه مواردی پشتیبانی کند و داری چه نامکی باشد. در بخش Supports تیک هر کدام از موارد که می خواهید را بزنید و در کادر Enable Archives اگر می خواهید از نامک اختصاصی استفاده کنید آن را روی گزینه سوم (Set custom archive slug) بگذارید و در کادر پایین تر نامک سفارشی خودتون رو بنویسید، در حالت پیش فرض نامک همان Post type key است که در مرحله اول مشخص کردید.

ساخت پست تایپ سفارشی
ساخت پست تایپ سفارشی

6- در بخش Visibility موارد مربوط به نمایش پست تایپ را مشخص می کنید. به عنوان مثال در بخش Show in Admin Sidebar مشخص می کنید که در منوی پنل وردپرس در کجا قرار داشته باشد. بقیه موارد معمولا نیازی نیست که تغییر کنند.

ساخت پست تایپ سفارشی
ساخت پست تایپ سفارشی

7- بخش بعدی مربوط به کوئری ها می باشد، در صورتی که می خواهید از کوئری پست تایپ در قالب های خود استفاده کنید می توانید آن را تغییر دهید.

ساخت پست تایپ سفارشی
ساخت پست تایپ سفارشی

8- در بخش Permalinks شما می توانید پیوندهای یکتای مربوط به پست تایپ سفارشی خود را مشخص کنید که در حالت پیش فرض از همان Post type key استفاده می کند.

ساخت پست تایپ سفارشی
ساخت پست تایپ سفارشی

9- در بخش Capabilities می توانید تعریف کنید که این پست تایپ دارای چه نوع قابلیت هایی باشد که بتوانید آنها را به کاربران خود اختصاص دهید در حالت پیش فرض این Capabilitieها مشابه برگه‌های وردپرس هستند که می توانید آنها را به صورت اختصاصی تعیین کنید یا اینکه این مورد را به نوشته‌های وردپرس تغییر دهید.

ساخت پست تایپ سفارشی
ساخت پست تایپ سفارشی

10- در مرحله آخر تنظیمات مربوط به Rest API است که معمولا شما نیازی بهش پیدا نمی کنید البته می تونید یه نگاهی بهش بندازید و در صورتی که بهش نیاز دارید تنظیمات خودتون رو اعمال کنید.

ساخت پست تایپ سفارشی
ساخت پست تایپ سفارشی

بعد از این مرحله کار شما تمام است و با کلیک روی دکمه Update Code می توانید خروجی کد پست تایپ اختصاصی خودتان را در پایین همین صفحه دریافت کنید و آن را در فایل functions.php قالب خود قرار دهید و استفاده کنید.

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

امیدواریم که این مقاله برای شما مفید بوده باشد. لطفا اینوپ را به دوستان خود معرفی کنید.

برچسب‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن