روزهای خط خطی  | استفاده از Custom Post Type در وردپرس

استفاده از Custom Post Type در وردپرس

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

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

 CSS | 
 
 copy code |
?

1
<?php register_post_type($post_type, $args); ?>

post_type نام دلخواهی است که می خواهیم به این نوع محتوای جدید اختصاص بدهیم و args آرگومان های مورد استفاده در فراخوانی تابع هستند که در ادامه آن ها توضیح خواهیم داد. برای آسانتر شدن کار موضوع را با یک مثال بررسی می کنیم.

 PHP | 
 
 copy code |
?

1
 $args = array('labels' => $labels,
2
 'public' => true,
3
 'show_ui' => true,
4
 'menu_position' => 5,
5
 'supports' => $support,
6
 'can_export' => true);

بررسی را از خط اول شروع می کنیم. labels در واقع آرایه ای از همه ی عنوان هایی است که این نوع محتوای جدید به آن ها نیاز خواهد داشت. محتوای این آرایه را کمی پایین تر در همین صفحه بررسی خواهیم کرد. public وضعیت نمایانی نوع محتوا را تنظیم می کند. اگر این مقدار true باشد این نوع محتوای جدید در سایت قابل نمایش خواهد بود و در صورتی که مقدار آن را false قرار دهیم فقط در قسمت مدیریت قابل مشاهده خواهد بود.

show_ui مربوط به نمایش نوع جدید محتوا در قسمت مدیریت است. اگر آن را برابر true قرار دهیم در قسمت مدیریت یک منوی جدید مختص این نوع جدید داده خواهیم داشت.

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

5 زیر نوشته ها
10  زیر رسانه
15  زیر پیوندها
20  زیر برگه ها
25  زیر دیدگاه ها
60  زیر اولین جدا کننده
65  زیر افزونه ها
70  زیر کاربران
75  زیر ابزارها
80  زیر تنظیمات
100  زیر دومین جدا کنند

supports آرایه ای از مواردی است که این نوع جدید بناست از آن ها پشتیبانی کند و در ادامه به آن خواهیم پرداخت و can_export برای وردپرس مشخص می کند که آیا این نوع محتوای جدید قابلیت برون بری دارد یا خیر. البته آرگومان های تابع register_post_type شامل موارد دیگری هم هستند ولی ما به دلیل رعایت اختصار و سادگی تنها موارد با اهمیت بیشتر را بررسی می کنیم.

حالا دوباره به بالا بر می گردیم و در مورد آرایه ی labels بحث می کنیم و البته باز هم با مثال.

 PHP | 
 
 copy code |
?

01
 $labels = array('name' => __('Series', 'wp-series-manager'),
02
 'singular_name' => __('Serie', 'wp-series-manager'),
03
 'add_new' => __('Add new serie', 'wp-series-manager'),
04
 'all_items' => __('All series', 'wp-series-manager'),
05
 'add_new_item' => __('Add new serie', 'wp-series-manager'),
06
 'edit_item' => __('Edit serie', 'wp-series-manager'),
07
 'view_item' => __('View Serie', 'wp-series-manager'),
08
 'search_items' => __('Search series', 'wp-series-manager'),
09
 'not_found' => __('No series found', 'wp-series-manager'),
10
 'not_found_in_trash' => __('No series found in trash', 'wp-series-manager'),
11
 'menu_name' => __('Series', 'wp-series-manager'));

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

  • name: نام نوع محتوای جدید است و معمولا به صورت جمع می باشد.
  • singular_name: نوع مفرد گزینه ی قبلی است.
  • add_new: نوشته ای که روی گزینه ی اضافه کردن محتوای جدید در منوی مدیریت نشان داده می شود.
  • all_itmes: نوشته ای که روی گزینه ی نمایش همه ی موارد در منوی مدیریت نشان داده می شود.
  • add_new_item: نوشته ای که روی دکمه ی اضافه کردن مختوای جدید در قسمت نمایش محتوای نشان داده می شود.
  • edit_item: نوشته ای که روی دکمه ی ویرایش محتوا نمایش داده می شود.
  • view_item: نوشته ای که روی دکمه ی نمایش محتوا نمایش داده می شود.
  • search_items: نوشته ای که روی دکمه ی جستجو در محتوا از این نوع نمایش داده می شود.
  • not_found: نوشته ای که در صورت وجود نداشتن هیچ محتوایی از این نوع نمایش داده می شود.
  • not_found_in_trash: نوشته ای است که در صورت وجود نداشتن هیچ محتوایی از این نوع در زباله دان نمایش داده می شود.
  • menu_name: عنوانی که در منوی مدیریت برای این نوع محتوا نمایش داده می شود.

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

  • title که همان عنوان محتواست.
  • editor که ویرایشگر متن وردپرس است که در واقع همان متن یا بدنه ی محتواست.
  • author یا کادری که می توان از طریق آن برای محتوا نویسنده انتخاب کرد.
  • thumbnail یا تصویر بندانگشتی
  • excerpt یا همان چکیده
  • comment یا همان دیدگاه ها

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

 PHP | 
 
 copy code |
?

1
$support = array('title', 'editor');

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

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

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

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