دوره مجازی قالب وردپرس (جلسه 33):پیاده سازی custom taxonomy

دسته بندی: وردپرس
زمان مطالعه: ۱ دقیقه
۰۵ آذر ۱۳۹۴

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

 

در این حلسه خواهیم دید :

  • مفاهیم taxonomy و کاربرد آن
  • مروری برای طیقه بندی های پیش فرض وردپرس
  • بررسی آرگومان های لازم برای تابع register_taxonomy
  • ایجاد taxonomy سفارشی برای قالب
:: توجه

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

ثبت نام در آموزش طراحی قالب وردپرس

نویسنده
یادگیرنده ی همیشگی،برنامه نویس،نویسنده،عاشق خلق چیزهای عجیب،عاشق تحلیل داده ها، مسئول بخش فنی و هم بنیان گذار در سون لرن.

جلسات دوره

نظرات کاربران

حمید درویش

سلام و خسته نباشید
در مورد همین سایت سون لرن سوال داشتم
الان ما یه صفحه داریم به آدرس زیر:
www.7learn.com/course
که داخلش تمام دوره ها به صورت جداگانه آورده شده. پیاده سازی این بخش به چه صورته؟ آیا مثلا post type بنام course ساخته شده یا چیزه دیگه ؟
اسم فایل php که در قالب باید ساخته بشه به چه صورته؟

Hosein Tahmasbi

مشکل حل شد، مشکل از گوتنبرگ هستش. اگر برای پشتیبانی از گوتنبرگ show_in_rest را به custom post type اضافه کردین باید همین را به custom taxonomy هم اضافه کنیم.

Hosein Tahmasbi

سلام استاد خسته نباشید
من یه custom post type ایجاد کردم به نام Disease. و یه custom taxonomy ایجاد کردم به نام Speciality. ولی متاسفانه باکس speciality در هنگام افزودن مطلب جدید به disease نمایش داده نمیشه. این کدهایی هست که توی function قالب اضافه کردم:

//Disease Custom Post Type

add_action(‘init’,’add_disease_custom_post_type’);
    function add_disease_custom_post_type(){
        $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’ => ‘disease’ ),
        ‘capability_type’    => ‘post’,
        ‘menu_icon’          => ‘dashicons-media-text’,
		‘has_archive’        => true,
        ‘hierarchical’       => false,
        ‘taxonomies’         => array(‘speciality’, ‘post_tag’),
		‘menu_position’      => 5,
		‘supports’           => array( ‘title’, ‘editor’, ‘author’, ‘thumbnail’, ‘excerpt’, ‘comments’, ‘post-formats’, ‘custom-fields’ ),
		‘show_in_rest’ => true
	);

	register_post_type( ‘disease’, $args );
}


//Speciality Category
add_action( ‘init’, ‘add_speciality_custom_taxonomy’, 0 );
function add_speciality_custom_taxonomy() {
   
    $labels = array(
        ‘name’              => _x( ‘دسته بندی بیماری ها’, ‘taxonomy general name’, ‘textdomain’ ),
        ‘singular_name’     => _x( ‘دسته بندی بیماری’, ‘taxonomy singular name’, ‘textdomain’ ),
        ‘search_items’      => __( ‘جستجو’, ‘textdomain’ ),
        ‘all_items’         => __( ‘همه دسته بندی ها’, ‘textdomain’ ),
        ‘parent_item’       => __( ‘دسته بندی مادر’, ‘textdomain’ ),
        ‘parent_item_colon’ => __( ‘دسته بندی مادر:’, ‘textdomain’ ),
        ‘edit_item’         => __( ‘ویرایش دسته بندی’, ‘textdomain’ ),
        ‘update_item’       => __( ‘بروزرسانی’, ‘textdomain’ ),
        ‘add_new_item’      => __( ‘افزودن دسته جدید’, ‘textdomain’ ),
        ‘new_item_name’     => __( ‘نام دسته جدید’, ‘textdomain’ ),
        ‘menu_name’         => __( ‘دسته بندی بیماری ها’, ‘textdomain’ ),
    );

    $args = array(
        ‘hierarchical’      => true,
        ‘labels’            => $labels,
        ‘show_ui’           => true,
        ‘show_admin_column’ => true,
        ‘query_var’         => true,
        ‘rewrite’           => array( ‘slug’ => ‘speciality’ ),
    );

    register_taxonomy( ‘speciality’, array( ‘disease’), $args );
}
کیوان علی محمدی

سلام می تونید از get_categories استفاده کنید.

کیوان علی محمدی

سلام می تونید از WP_Query استفاده کنید که از پست تایپ سفارشی و مثلا فلان دسته بندی فقط مطالب رو نشون بده.

پایان زمان پشتیبانی

دانشجوی گرامی، بازه پشتیبانی فعال برای این دوره ۳ ماه است که برای شما به پایان رسیده است.

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

نیاز به لاگین

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