پست تایپ و تکسونامی در #وردپرس از طبقه بندی های اصلی برای مرتب سازی و دسته بندی مطالب سایت می باشد. بطور پیش فرض بعد از نصب وردپرس چندین پست تایپ و تکسونامی وجود دارد. برگه ها، نوشته ها و رسانه ها بعنوان Post Type و دسته بندی ها و برچسب ها بعنوان Taxonomy شناخته می شوند. طراحان قالب می توانند با ایجاد پست تایپ و تکسونامی های جدید، امکان ارسال مطالب در دسته های مختلف را فراهم کنند و از طرفی داخل سایت هم مطالب را بطور مجزا از هم نمایش داد. مانند سایت های فیلم و سریال که می توانند فیلم ها، سریال ها، زیرنویس ها و … را در دسته های مختلفی با الگوهای مختلفی نمایش داد.

پست تایپ سفارشی
برای ساختن یک پست تایپ جدید، باید کد زیر را داخل فایل functions.php
قالبتان قرار دهید:
// Register Custom Post Type
function betalk_custom_posttype() {
$labels = array(
'name' => _x( 'Video', 'Post Type General Name', 'betalk-wp' ),
'singular_name' => _x( 'Video', 'Post Type Singular Name', 'betalk-wp' ),
'menu_name' => __( 'Video', 'betalk-wp' ),
'name_admin_bar' => __( 'Video', 'betalk-wp' ),
'archives' => __( 'Video Archives', 'betalk-wp' ),
'attributes' => __( 'Video Attributes', 'betalk-wp' ),
'parent_item_colon' => __( 'Parent Video:', 'betalk-wp' ),
'all_items' => __( 'All Videos', 'betalk-wp' ),
'add_new_item' => __( 'Add New Video', 'betalk-wp' ),
'add_new' => __( 'Add New', 'betalk-wp' ),
'new_item' => __( 'New Video', 'betalk-wp' ),
'edit_item' => __( 'Edit Video', 'betalk-wp' ),
'update_item' => __( 'Update Video', 'betalk-wp' ),
'view_item' => __( 'View Video', 'betalk-wp' ),
'view_items' => __( 'View Video', 'betalk-wp' ),
'search_items' => __( 'Search Video', 'betalk-wp' ),
'not_found' => __( 'Not found', 'betalk-wp' ),
'not_found_in_trash' => __( 'Not found in Trash', 'betalk-wp' ),
'featured_image' => __( 'Featured Image', 'betalk-wp' ),
'set_featured_image' => __( 'Set featured image', 'betalk-wp' ),
'remove_featured_image' => __( 'Remove featured image', 'betalk-wp' ),
'use_featured_image' => __( 'Use as featured image', 'betalk-wp' ),
'insert_into_item' => __( 'Insert into Video', 'betalk-wp' ),
'uploaded_to_this_item' => __( 'Uploaded to this Video', 'betalk-wp' ),
'items_list' => __( 'Links list', 'betalk-wp' ),
'items_list_navigation' => __( 'Video list navigation', 'betalk-wp' ),
'filter_items_list' => __( 'Filter Video list', 'betalk-wp' ),
);
$rewrite = array(
'slug' => 'video',
'with_front' => true,
'pages' => true,
'feeds' => false,
);
$args = array(
'label' => __( 'Video', 'betalk-wp' ),
'description' => __( 'Video Database', 'betalk-wp' ),
'labels' => $labels,
'supports' => array( 'title', 'editor', 'comments', 'thumbnail' ),
'taxonomies' => array( ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'menu_icon' => 'dashicons-format-video',
'show_in_admin_bar' => true,
'show_in_nav_menus' => true,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'rewrite' => $rewrite,
'capability_type' => 'page',
);
register_post_type( 'Video', $args );
}
add_action( 'init', 'betalk_custom_posttype', 0 );
تنظیمات:
- از خط 5 تا 31 و همچنین 40 و 41 در کد بالا، می توانید متن هایی که در هر خط وجود دارد را ترجمه کنید یا اینکه بجای
betalk-wp
در سراسر کد، تکست دامین یا Text Domain قالب خودتان که در فایل Style.css
قابل مشاهده هست را جایگزین کنید و سپس با افزونه Loco Translate متن ها را ترجمه کنید. در کد بالا تمامی خطوطی که عبارت betalk-wp
داخل آن است قابل ترجمه است. انتخاب با شماست!
- در خط 34 یعنی کد
'slug' => 'video',
بجای video نام انگلیسی پست تایپ خودتان را وارد کنید. کلمه را با حرف کوچک انگلیسی وارد کنید. این کلمه برای آدرس بایگانی مطالب این پست تایپ داخل سایت استفاده خواهد شد. بطور مثال betalk.ir/video
- در خط 43 یعنی کد
'supports' => array( 'title', 'editor', 'comments', 'thumbnail' ),
می توانید قابلیت هایی که پست تایپ جدید باید پشتیبانی کند را وارد کنید. در کد بالا ما برای پست تایپ فیلدهای عنوان، توضیحات و نظرات و تصاویر شاخص را فعال کرده ایم. شما می توانید این قابلیت ها را کم یا زیاد کنید. سایر قابلیت های پست تایپ ها را می توانید در این لینک مشاهده کنید:
https://developer.wordpress.org/reference/functions/post_type_supports/
- در خط 60 یعنی کد
register_post_type( 'Video', $args );
بجای Video نام پست تایپ جدیدتان را به انگلیسی وارد کنید.
- مابقی تنظیمات و خط های کد بالا را می توانید تک به تک داخل گوگل جستجو کنید تا در خصوص شخصی سازی بیشتر پست تایپ آشنایی پیدا کنید اما بطور کلی این چند موردی که گفته شد اصلی ترین بخش هایی هستند که باید ویرایش کنید.
توجه:
فراموش نکنید که پس از اضافه کردن پست تایپ و تکسونامی جدید، به تنظیمات پیوندیکتا در پیشخوان بروید و یکبار بدون تغییر گزینه ها، کلید ذخیره را کلیک کنید تا پست تایپ جدیدتان بدون مشکل و خطا داخل سایت اجرا شود. این مرحله بسیار مهم است.
اکنون پست تایپ جدیدتان ساخته شده است، پیوندیکتا را یکبار ذخیره کنید و پیشخوان را رفرش کنید. اگر افزونه کش استفاده می کنید یکبار کش سایت را خالی کنید.
تکسونامی سفارشی
همانطور که گفته شد تکسونامی مانند برچسب و دسته بندی عمل می کند. اگر برای پست تایپ جدیدتان نیاز به دسته بندی یا برچسب دارید، یک تکسونامی جدید هم باید اضافه کنید. برای اضافه کردن تکسونامی جدید این کد را زیر کد پست تایپ در فایل functions.php
قرار دهید:
// Register Custom Taxonomy
function betalk_custom_category() {
$labels = array(
'name' => _x( 'Categories', 'Taxonomy General Name', 'betalk-wp' ),
'singular_name' => _x( 'Category', 'Taxonomy Singular Name', 'betalk-wp' ),
'menu_name' => __( 'Category', 'betalk-wp' ),
'all_items' => __( 'All Categories', 'betalk-wp' ),
'parent_item' => __( 'Parent Category', 'betalk-wp' ),
'parent_item_colon' => __( 'Parent Category:', 'betalk-wp' ),
'new_item_name' => __( 'New Category Name', 'betalk-wp' ),
'add_new_item' => __( 'Add new Category', 'betalk-wp' ),
'edit_item' => __( 'Edit Category', 'betalk-wp' ),
'update_item' => __( 'Update Category', 'betalk-wp' ),
'view_item' => __( 'View Category', 'betalk-wp' ),
'separate_items_with_commas' => __( 'Separate items with commas', 'betalk-wp' ),
'add_or_remove_items' => __( 'Add or remove items', 'betalk-wp' ),
'choose_from_most_used' => __( 'Choose from the most used', 'betalk-wp' ),
'popular_items' => __( 'Popular Categories', 'betalk-wp' ),
'search_items' => __( 'Search Categories', 'betalk-wp' ),
'not_found' => __( 'Not Found', 'betalk-wp' ),
'no_terms' => __( 'No items', 'betalk-wp' ),
'items_list' => __( 'Categories List', 'betalk-wp' ),
'items_list_navigation' => __( 'Items list navigation', 'betalk-wp' ),
);
$rewrite = array(
'slug' => 'videocat',
'with_front' => true,
'hierarchical' => true,
);
$args = array(
'labels' => $labels,
'hierarchical' => true,
'public' => true,
'show_ui' => true,
'show_admin_column' => true,
'show_in_nav_menus' => true,
'show_tagcloud' => true,
'rewrite' => $rewrite,
);
register_taxonomy( 'videocat', array( 'video' ), $args );
}
add_action( 'init', 'betalk_custom_category', 0 );
تنظیمات:
- خط 5 تا 24 مانند پست تایپ قابل ترجمه است. یا درون کد ترجمه کنید یا تکست دامین قالبتان را بجای
betalk-wp
قرار دهید و با ابزار ترجمه، متن ها را ترجمه کنید.
- در خط 27 یعنی کد
'slug' => 'videocat',
بجای videocat
یک شناسه برای تکسونامی جدید وارد کنید. فقط از حروف کوچک انگلیسی استفاده کنید.
- در خط 41 یعنی کد
register_taxonomy( 'videocat', array( 'video' ), $args );
بجای videocat
دقیقا همان کلمه ای که برای گزینه قبل استفاده کرده اید استفاده کنید. یعنی دقیقا همان کلمه ای که در خط 27 وارد کرده اید. و بجای video
شناسه پست تایپ که در ابتدا ایجاد کرده اید را وارد کنید. بجای کلمه video
باید شناسه پست تایپ را وارد کرد که این تکسونامی با پست تایپ جدیدمان متصل شود.
- در کد تکسونامی بالا، دو خط مشابه
'hierarchical' => true,
وجود دارد (خط 29 و 33). تکسونامی ها در وردپرس به دو حالت برچسب و دسته بندی هستند. اگر این دو خط مذکور true
باشند، حالت نمایش آنها مانند دسته بندی خواهد بود (یعنی مانند دسته بندی عادی نوشته ها، امکان تیک زدن آیتم ها وجود دارد. این گزینه برای دسته بندی و ژانر و … کاربردی است). و اگر این دو خط را false
تنظیم کنید، حالت نمایش تکسونامی مانند برچسب خواهد شد و می توانید به تعداد دلخواه در هر نوشته مقادیر دلخواه وارد کنید. در واقع با تغییر true و false می توانید تعیین کنید که تکسونامی جدید به صورت برچسب باشد یا دسته بندی!
همانند پست تایپ، فراموش نکنید پس از اضافه کردن کد بالا، تنظیمات پیوندیکتای وردپرس را یکبار ذخیره کنید و کش را پاکسازی کنید.
نمایش مطالب در سایت (ساخت فایل ها)
پس از اضافه کردن پست تایپ و تکسونامی، نوبت به نمایش مطالب ارسال شده در این دو طبقه بندی می رسد. اگر قالبتان استاندارد باشد، بدون ویرایش قالب، زمانی که مطالب را ارسال می کنید بدون هیچ مشکلی می توانید مطالب را با باز کردن لینک مشاهده کنید. اما برای شخصی سازی و عدم تداخل بهتر است فایل های قالب مربوط به تکسونامی و پست تایپ را در پوشه قالب ایجاد کنید.
- برای نمایش آرشیو تمامی مطالب پست تایپ جدید، یک فایل داخل پوشه قالب به نام
archive-video.php
ایجاد کنید. بجای video
باید شناسه پست تایپ را جایگزین کنید. سپس محتویات فایل archive.php
قالبتان را داخل این فایل جدید کپی کنید. با وارد شدن به لینک betalk.ir/video
(البته با جایگزین کردن شناسه پست تایپ و آدرس سایت خودتان) می توانید تمامی مطالبی که در پست تایپ جدید ارسال می کنید را مشاهده کنید.
- برای نمایش مطالب داخل تکسونامی ها (همان دسته بندی اختصاصی خودتان که با کد دوم ساخته اید) باید یک فایل به نام
taxonomy-videocat.php
ایجاد کنید. بجای videocat
شناسه تکسونامی جدیدتان را جایگزین کنید. سپس محتویات فایل category.php
یا Tag.php
یا archive.php
قالبتان را داخل این فایل جدید کپی کنید. اکنون اگر یک دسته بندی یا برچسب داخل تکسونامی خودتان ایجاد کنید، با وارد شدن به لینک مخصوص آن می توانید مطالبی که داخل آنها ارسال می شوند را مشاهده کنید.
- برای نمایش ادامه مطلب پست تایپ جدید، باید یک فایل به نام
single-video.php
ایجاد کنید. بجای video
شناسه پست تایپ خودتان را وارد کنید. سپس محتویات فایل single.php
قالبتان را داخل این فایل کپی کنید. اکنون اگر مطلبی داخل پست تایپ جدید ارسال کنید با وارد شدن به لینک مخصوص آن می توانید ادامه مطلب را مشاهده کنید.
پس از ساختن فایل ها می توانید آنها را شخصی سازی کنید و حالت نمایش آنها را تغییر دهید تا در صفحه پست تایپ جدید اعمال شوند. و حتما خالی کردن کش سایت را فراموش نکنید!