آموزش ساخت پست تایپ اختصاصی در وردپرس

29 اردیبهشت 1399

نویسنده : قلب وردپرس | دسته بندی: آموزشی | ۰ نظر | ۲۶۰ بازدید

چکیــــــده ...

با سلام , در این ساعت از دانشگاه قلب وردپرس در خدمت شما هستیم با آموزش ساخت پست تایپ اختصاصی در وردپرس همانطور که در مطلع هستید وردپرس دارای چند پست تایپ پیشفرض میباشد که میتوان مهمترین آن ها را نوشته ها , برگه ها و رسانه ها نام برد. حالا برای اینکه ما بخواهیم […]

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

با سلام , در این ساعت از دانشگاه قلب وردپرس در خدمت شما هستیم با آموزش ساخت پست تایپ اختصاصی در وردپرس

همانطور که در مطلع هستید وردپرس دارای چند پست تایپ پیشفرض میباشد که میتوان مهمترین آن ها را نوشته ها ,

برگه ها و رسانه ها نام برد.

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

و از آنها برای بالابردن سطح سایتمان استفاده کنیم نیاز هست تا با استفاده از چند خط کد

یک پست تایپ جدیدی را به هسته وردپرس اضافه کنیم.

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

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

یک باکس دانلود بسازید و ….

در واقع کلیه پست تایپ های شما شامل محصولات و برگه ها و نوشته ها و… دارای متاهایی هستند که همه در یک جدول

دیتابیس ذخیره میشوند و نوشته ها و برگه ها و پست تایپ های شما همگی در جدول wp_posts ذخیره میشوند.

 

در ساخت پست تایپ برای وردپرس نیاز به چند خط کد میباشد که در ادامه به معرفی آنها خواهیم پرداخت

و البته نحوه استفاده از آن ( فراخوانی ) در قالب را نیز به شما توضیح خواهم داد.

 

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

خب به سراغ معرفی کد ها میرویم :

 

<?php
function  wpheart_post_type() {
    $labels = array(
        'name'                  => _x( 'مقاله ها', 'Post Type General Name', 'text_domain' ),
        'singular_name'         => _x( 'مقاله', 'Post Type Singular Name', 'text_domain' ),
        'menu_name'             => __( 'مقاله ها', 'text_domain' ),
        'name_admin_bar'        => __( 'مقاله ها', 'text_domain' ),
        'archives'              => __( 'آرشیو مقاله ها', 'text_domain' ),
        'attributes'            => __( 'ویژگی های مقاله ها', 'text_domain' ),
        'parent_item_colon'     => __( 'والد مقاله', 'text_domain' ),
        'all_items'             => __( 'همه مقاله ها', 'text_domain' ),
        'add_new_item'          => __( 'افزودن مقاله جدید', 'text_domain' ),
        'add_new'               => __( 'افزودن', 'text_domain' ),
        'new_item'              => __( 'افزودن مقاله', 'text_domain' ),
        'edit_item'             => __( 'ویرایش مقاله', 'text_domain' ),
        'update_item'           => __( 'به روزرسانی مقاله', 'text_domain' ),
        'view_item'             => __( 'مشاهده مقاله', 'text_domain' ),
        'view_items'            => __( 'مشاهده مقاله ها', 'text_domain' ),
        'search_items'          => __( 'جستجوی مقاله', 'text_domain' ),
        'not_found'             => __( 'مقالهی یافت نشد', 'text_domain' ),
        'not_found_in_trash'    => __( 'مقالهی در سطل زباله یافت نشد', 'text_domain' ),
        'featured_image'        => __( 'تصویر شاخص مقاله', 'text_domain' ),
        'set_featured_image'    => __( 'تنظیم تصویر شاخص', 'text_domain' ),
        'remove_featured_image' => __( 'حذف تصویر شاخص', 'text_domain' ),
        'use_featured_image'    => __( 'استفاده به عنوان تصویر شاخص', 'text_domain' ),
        'insert_into_item'      => __( 'افزودن به این مقاله', 'text_domain' ),
        'uploaded_to_this_item' => __( 'گذاشتن در این مقاله', 'text_domain' ),
        'items_list'            => __( 'لیست مقاله ها', 'text_domain' ),
        'items_list_navigation' => __( 'لیست منو مقاله ها', 'text_domain' ),
        'filter_items_list'     => __( 'فیلتر مقاله ها', 'text_domain' ),
    );
    $rewrite = array(
        'slug'                  => 'maqalat',
        'with_front'            => true,
        'pages'                 => true,
        'feeds'                 => true,
    );
    $args = array(
        'label'                 => __( 'مقاله', 'text_domain' ),
        'description'           => __( 'توضیحات پست تایپ', 'text_domain' ),
        'labels'                => $labels,
        'supports'              => array( 'title', 'editor', 'thumbnail', 'comments', 'custom-fields', 'page-attributes', 'post-formats' ),
        'taxonomies'            => array( 'maqale_cat','maqale_tag' ),
        'hierarchical'          => false,
        'public'                => true,
        'show_ui'               => true,
        'show_in_menu'          => true,
        'menu_position'         => 5,
        'menu_icon'             => 'dashicons-controls-volumeon',
        'show_in_admin_bar'     => true,
        'show_in_nav_menus'     => true,
        'can_export'            => true,
        'has_archive'           => 'maqale',
        'exclude_from_search'   => false,
        'publicly_queryable'    => true,
        'rewrite'               => $rewrite,
        'capability_type'       => 'page',
    );
    register_post_type( 'maqale', $args );

}
add_action( 'init', 'wpheart_post_type', 0 );

در کد مرحله اول ما یک تابع ( فانکشن ) را با عنوان wpheart_post_type ساختیم و در آن به کمک یک آرایه

کلیه موارد مورد نیاز را نوشتیم که همه موارد ذکر شده مهم هستند و در صورت عدم وجود هر یک از آنها

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

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

در ادامه به کمک کد بعدی که قرار میدهیم برای این پست تایپ جدید یک تکسونومی جدید با عنوان دسته ها و در ادامه یک تکسونومی برچسب

ها را خواهیم ساخت.

در کد مرحله دوم کد های مربوط به تکسونومی دسته بندی را مشاهده میکنید :

function wpheart_cat__taxonomy() {

    $labels = array(
        'name'                       => _x( 'دسته ها', 'Taxonomy General Name', 'text_domain' ),
        'singular_name'              => _x( 'دسته', 'Taxonomy Singular Name', 'text_domain' ),
        'menu_name'                  => __( 'دسته', 'text_domain' ),
        'all_items'                  => __( 'همه دسته ها', 'text_domain' ),
        'parent_item'                => __( 'دسته والد', 'text_domain' ),
        'parent_item_colon'          => __( 'دسته والد:', 'text_domain' ),
        'new_item_name'              => __( 'نام دسته جدید', 'text_domain' ),
        'add_new_item'               => __( 'افزودن دسته جدید', 'text_domain' ),
        'edit_item'                  => __( 'ویرایش دسته', 'text_domain' ),
        'update_item'                => __( 'به روزرسانی دسته', 'text_domain' ),
        'view_item'                  => __( 'مشاهده دسته', 'text_domain' ),
        'separate_items_with_commas' => __( 'دسته ها را با کاما از هم جدا کنید', 'text_domain' ),
        'add_or_remove_items'        => __( 'اضافه یا حذف کردن دسته', 'text_domain' ),
        'choose_from_most_used'      => __( 'انتخاب بیشترین استفاده شده', 'text_domain' ),
        'popular_items'              => __( 'محبوب ترین دسته ها', 'text_domain' ),
        'search_items'               => __( 'جستجوی دسته', 'text_domain' ),
        'not_found'                  => __( 'دسته ای یافت نشد', 'text_domain' ),
        'no_terms'                   => __( 'بدون دسته بندی', 'text_domain' ),
        'items_list'                 => __( 'لیست دسته ها', 'text_domain' ),
        'items_list_navigation'      => __( 'لیست منو دسته ها', 'text_domain' ),
    );
    $rewrite = array(
		'slug'                       => 'maqale-cat',
		'with_front'                 => true,
		'hierarchical'               => false,
	);
    $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,
		'show_in_rest'               => true,
    );
    register_taxonomy( 'maqale_cat', array( 'maqale' ), $args );

}
add_action( 'init', 'wpheart_cat__taxonomy', 0 );

در کد های قسمت دوم به کمک تابع register_taxonomy و تابعی که با نام wpheart_cat_taxonomy ساخته بودیم

یک تکسونومی با عنوان دسته ها ( دسته بندی ) به پست تایپی که در مرحله اول با عنوان مقاله ها ساختیم

اضافه کردیم.

و به کمک یک اکشن تابع مورد نظر را به هسته وردپرس اضافه کردیم.

در مرحله سوم برای اضافه کردن تکسونویم برچسب ها دقیقا مانند بخش دوم ( دسته بندی ) اقدام میکنیم و کد را به شکل زیر

قرار میدهیم :

 

function wpheart_tag_taxonomies(){
  // Add new taxonomy, NOT hierarchical (like tags)
  $labels = array(
    'name' => _x( 'برچسب ها', 'taxonomy general name' ),
    'singular_name' => _x( 'برچسب', 'taxonomy singular name' ),
    'search_items' =>  __( 'جستجوی برچسب' ),
    'popular_items' => __( 'برچسب های محبوب' ),
    'all_items' => __( 'همه برچسب ها' ),
    'parent_item' => null,
    'parent_item_colon' => null,
    'edit_item' => __( 'ویرایش برچسب' ),
    'update_item' => __( 'به روزرسانی برچسب' ),
    'add_new_item' => __( 'افزودن برچسب جدید' ),
    'new_item_name' => __( 'نام جدید برچسب' ),
    'separate_items_with_commas' => __( 'برچسب هارا با کاما جدا کنید' ),
    'add_or_remove_items' => __( 'حذف یا اضافه برچسب' ),
    'choose_from_most_used' => __( 'انتخاب از بیشترین استفاده شده ها' ),
    'menu_name' => __( 'برچسب ها' ),
  );

  register_taxonomy('maqale_tag','maqale',array(
    'hierarchical' => false,
    'labels' => $labels,
    'show_ui' => true,
    'update_count_callback' => '_update_post_term_count',
    'query_var' => true,
    'rewrite' => array( 'slug' => 'maqale-tag' ),
  ));
}
add_action( 'init', 'maqale_tag_taxonomies', 0 );

 

در نهایت در قسمت سوم کد های برچسب را به پست تایپ مورد نظرمان اضافه کردیم .

به این ترتیب شما میتوانید با تغییر نام توابعی که ساختیم به نام های دیگر به تعداد نامحدودی پست تایپ به سایت خودتان

اضافه نمایید.

 

برای مشاهده ویدیو های آموزشی به کانال آپارات ما مراجعه نمایید.

 

پایان/.

 

 

قلب وردپرس

قلب وردپرس نویسنده مقاله

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

0 0 رای
امتیاز شما به این آموزش
عضویت
اطلاع از

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

0 Comments
Inline Feedbacks
View all comments