آموزش تعریف Custom Post Type در وردپرس

آموزش تعریف Custom Post Type در وردپرس

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

فرض کنید میخواهیم یک پست سفارشی برای یک کتاب فروشی ایجاد کنیم. برای ایجاد یک Custom Post Type با نام کتاب به ادامه مطلب توجه کنید.

برای این کار شما هم میتوانید از افزونه استفاده کنید هم میتوانید از کد های زیر استفاده کنید.(کد هارا در فایل functions.php کپی کنید اگر هم این فایل را ندارید آنرا ایجاد کنید)

<?php

add_action( 'init', 'function_name' );

function function_name() {
	$labels = array(
		'name'               => __( 'کتاب ها' ),
		'singular_name'      => __( 'کتاب' ),
		'menu_name'          => __( 'کتاب فروشی' ),
		'name_admin_bar'     => __( 'کتاب فروشی' ),
		'add_new'            => __( 'افزودن کتاب' ),
		'add_new_item'       => __( 'افزودن کتاب جدید' ),
		'new_item'           => __( 'کتاب جدید' ),
		'edit_item'          => __( 'ویرایش کتاب' ),
		'view_item'          => __( 'مشاهده کتاب' ),
		'all_items'          => __( 'همه کتاب ها' ),
		'search_items'       => __( 'جستجو در بین کتاب ها' ),
		'parent_item_colon'  => __( 'مادر' ),
		'not_found'          => __( 'کتاب یافت نشد' ),
		'not_found_in_trash' => __( 'کتاب در زباله دان یافت نشد' )
	);

	$args = array(
		'labels'             => $labels,
                'description'        => __( 'پست تایپ کتاب های فروشی' ),
		'public'             => true,
		'publicly_queryable' => true,
		'show_ui'            => true,
		'show_in_menu'       => true,
		'query_var'          => true,
		'rewrite'            => array( 'slug' => 'books' ),
        'menu_icon'          => 'dashicons-book',//022- add dashicon,
		'capability_type'    => 'post',
		'has_archive'        => true,
		'hierarchical'       => false,
		'menu_position'      => null,
		'supports'           => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
	);

	register_post_type( 'books', $args );
}
  • این کد چه کاری را برای ما انجام میدهد؟

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

 

  • توضیحات کد بالا

در خط اول با استفاده از تابع add_action به هوک init تابع دلخواه خود را متصل کنید و در ادامه تابع خود را تعریف کنید.

در قسمت labels مشخص می کنید که عناوین مختلف پست تایپی که تعریف میکنید چه چیزی باشد برای مثال عنوان منو، زیرمنو و درواقع نوعی ترجمه است.

در قسمت args یکی از مهم ترین بخش ها rewrite می باشد که اسلاگ رو برابر books قرار دادیم، در بخش supports هم باید امکاناتی که برای پست تایپ خود نیازدارید را مشخص نمایید، برای مثال در کد بالا title را برای قرار دادن بخش نوشتن عنوان، editor را برای قرار دادن بخش نوشتن متن، thumbnail برای قرار دادن بخش تصویر شاخص، comments برای قرار دادن بخش دیدگاه ها و author برای قراردادن بخش نویسنده ها و…

و در پایان با استفاده از تابع register_post_type پست تایپ سفارشی خود را ثبت میکنید ولی باید توجه داشته باشید که پارامتر اول این تابع را باید برابر با همان مقداری باشد که توی قسمت rewrite تعریف کردید که در مثال بالا برابر books می باشد.

  • چند نکته درباره استفاده از تابع register_post_type

  • پارامتر rewrite برای وردپرس بیان می کند تا چگونه url های مربوط به پست سفارشی شما را بازنویسی کند و به کاربران سایت شما نمایش دهد.

 

  • پارامتر menu_icon برای آیکون پست سفارشی شما استفاده میگردد و شما میتوانید با استفاده از dashicons های موجود در سایت wordpress.org آیکون دلخواه خود را انتخاب نمایید.
  •  پارامتر menu_position محل قرار گیری پست سفارشی شما را مشخص می کند که میتواند مقادیر زیر باشد.
  1. below Posts : پایین قسمت پست ها
  2. below Media : پایین قسمت چند رسانه
  3. below Links : پایین قسمت لینک ها
  4. below Pages : پایین قسمت برگه ها
  5. below comments : پایین قسمت دیدگاه ها
  6. below first separator : پایین قسمت جداساز اول
  7. below Plugins : پایین قسمت افزونه ها
  8. below Users : پایین قسمت کاربران
  9. below Tools : پایین قسمت ابزار ها
  10. below Settings : پایین قسمت تنظیمات
  11. below second separator : پایین قسمت جداساز دوم
  • پارامتر هایی که در بخش supports قرار میگیرند عبارتند از :
  1. ‘title’
  2. ‘editor’
  3. ‘author’
  4. ‘thumbnail’
  5. ‘excerpt’
  6. ‘trackbacks’
  7. ‘custom-fields’
  8. ‘comments’
  9. ‘revisions’
  10. ‘page-attributes’
  11. ‘post-formats’

 

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

در رابطه با این مطلب سوال یا نظری دارید؟ می توانید آن را در بخش دیدگاه ها ارسال کنید
مهدی خاکسار
مهدی خاکسار

متخصص وردپرس و نویسنده این مطلب

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