تصاویر وردپرس ، Taxonomy

آموزش قابلیت Taxonomy در وردپرس

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

آموزش قابلیت Taxonomy در وردپرس

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

شاید این سوال به ذهن شما برسد که از Taxonomy چه زمانی و برای چه مطالبی در سایت وردپرس می توان استفاده کرد ؟ فکر نکنید که شما این نوع دسته بندی را فقط می توانید برای پست های سفارشی و شخصی خود استفاده کنید ، حتی شما می توانید برای نوشته های پیش فرض و برای اداره بخش های مختلف همانند فیلم ها و صداها در سایت خود استفاده نمایید . پس تا به اینجای آموزش شما با قابلیت Taxonomy آشنا شدید و همچنین دریافتید که استفاده از این قابلیت منحصربفرد به مطالب سفارشی نمی باشد ، حال می خواهیم روش های این دسته بندی بپردازیم که به صورت زیر می باشد :

اول :

شما می توانید این دسته بندی را با استفاده از افزونه های وردپرس که در این زمینه هستند ، استفاده کنید برای نمونه می توانید از افزونه GD Custom Posts And Taxonomies Tools برای دسته بندی متنوع تر مطالب کمک بگیرید و سایت هایی در این زمینه می باشد که می توانید به سایت GenerateWP مراجعه نمایید و استفاده کنید .

دوم :

شما می توانید این کار را با استفاده از کدهای وردپرس انجام دهید که باید کدهایی را که در ادامه مشاهده می کنید در فایل functions.php پوسته وردپرس خود قرار بدهید که برای نمونه به قطعه کد زیر توجه نمایید :


// Register Custom Taxonomy
function wpp_custom_taxonomy() {

	$labels = array(
		'name'                       => __( 'Taxonomies', 'text_domain' ),
		'singular_name'              => __( 'Taxonomy', 'text_domain' ),
		'menu_name'                  => __( 'Taxonomy', 'text_domain' ),
		'all_items'                  => __( 'All Items', 'text_domain' ),
		'parent_item'                => __( 'Parent Item', 'text_domain' ),
		'parent_item_colon'          => __( 'Parent Item:', 'text_domain' ),
		'new_item_name'              => __( 'New Item Name', 'text_domain' ),
		'add_new_item'               => __( 'Add New Item', 'text_domain' ),
		'edit_item'                  => __( 'Edit Item', 'text_domain' ),
		'update_item'                => __( 'Update Item', 'text_domain' ),
		'separate_items_with_commas' => __( 'Separate items with commas', 'text_domain' ),
		'search_items'               => __( 'Search Items', 'text_domain' ),
		'add_or_remove_items'        => __( 'Add or remove items', 'text_domain' ),
		'choose_from_most_used'      => __( 'Choose from the most used items', 'text_domain' ),
		'not_found'                  => __( 'Not Found', 'text_domain' ),
	);
	$args = array(
		'labels'                     => $labels,
		'hierarchical'               => false,
		'public'                     => true,
		'show_ui'                    => true,
		'show_admin_column'          => true,
		'show_in_nav_menus'          => true,
		'show_tagcloud'              => true,
	);
	register_taxonomy( 'taxonomy', array( 'post' ), $args );

}

// Hook into the 'init' action
add_action( 'init', 'wpp_custom_taxonomy', 0 );


تابع wpp_custom_taxonomy

اگر به قطعه کد بالا دقت کنید ، تابع wpp_custom_taxonomy را به init برای دسته بندی جدید در آغاز برنامه نسبت داده شده و تابع register_taxonomy که برای ثبت دسته بندی ها استفاده می‌شود اگر دقت کنید پارامترهای مختلفی دارد که حتما در ادامه آموزش به انها می پردازیم . این قطعه کد دارای تنظیمات پیش فرضی برای پارامترهای خاصی می باشد که شما می توانید شخصی سازی بیشتری داشته باشید ، حال به قطعه کد زیر دقت نمایید :


// Register Custom Taxonomy
function wpp_custom_taxonomy() {

	$labels = array(
		'name'                       => __( 'Taxonomies', 'text_domain' ),
		'singular_name'              => __( 'Taxonomy', 'text_domain' ),
		'menu_name'                  => __( 'Taxonomy', 'text_domain' ),
		'all_items'                  => __( 'All Items', 'text_domain' ),
		'parent_item'                => __( 'Parent Item', 'text_domain' ),
		'parent_item_colon'          => __( 'Parent Item:', 'text_domain' ),
		'new_item_name'              => __( 'New Item Name', 'text_domain' ),
		'add_new_item'               => __( 'Add New Item', 'text_domain' ),
		'edit_item'                  => __( 'Edit Item', 'text_domain' ),
		'update_item'                => __( 'Update Item', 'text_domain' ),
		'separate_items_with_commas' => __( 'Separate items with commas', 'text_domain' ),
		'search_items'               => __( 'Search Items', 'text_domain' ),
		'add_or_remove_items'        => __( 'Add or remove items', 'text_domain' ),
		'choose_from_most_used'      => __( 'Choose from the most used items', 'text_domain' ),
		'not_found'                  => __( 'Not Found', 'text_domain' ),
	);
	$rewrite = array(
		'slug'                       => 'taxonomy',
		'with_front'                 => true,
		'hierarchical'               => false,
	);
	$capabilities = array(
		'manage_terms'               => 'manage_categories',
		'edit_terms'                 => 'manage_categories',
		'delete_terms'               => 'manage_categories',
		'assign_terms'               => 'edit_posts',
	);
	$args = array(
		'labels'                     => $labels,
		'hierarchical'               => false,
		'public'                     => true,
		'show_ui'                    => true,
		'show_admin_column'          => true,
		'show_in_nav_menus'          => true,
		'show_tagcloud'              => true,
		'query_var'                  => '',
		'rewrite'                    => $rewrite,
		'capabilities'               => $capabilities,
		'update_count_callback'      => 'Update_Count_Callback',
		);
	register_taxonomy( 'taxonomy', array( 'post' ), $args );

}

// Hook into the 'init' action
add_action( 'init', 'wpp_custom_taxonomy', 0 );


تابع register_taxonomy

اگر به تابع register_taxonomy دقت نمایید این تابع دارای 3 پارامتر می باشد ، پارامتر اول یعنی taxonomy نام دسته بندی را مشخص می کند و پارامتر دوم یعنی array( ‘post’ ) که ارایه ای از اسم های نوع پست ها می باشد یعنی مثل نوشته های پیش فرض و یا پست های سفارشی که بخواهید از این دسته بندی برای انها استفاده کنید و پارامتر سوم یعنی $args یک ارایه از ویژگی هایی که در دسته بندی به انها نیاز داریم است و در بالا شما می توانید این انواع رو مشاهده کنید و در ادامه به بررسی آن می پردازم  :

مورد اول : labels :

ارایه ای از عناوین مطالب مربوط در صفحات طبقه بندی می باشد ، که خود شامل موراد زیر می باشد :

  • name : عنوان دسته بندی ها می باشد
  • singular_name : عنوان تکی دسته بندی است
  • menu_name : عنوان منو
  • all_items : عنوان تمام آیتم ها است
  • parent_item : عنوان مطالبی که در دسته بندی ها بتوان به صورت سلسله مراتبی نوشت
  • parent_item_colon : مانند parent_item
  • new_item_name : عنوانی برای دسته بندی جدید
  • add_new_item : عنوانی برا اضافه کردن ایتم جدید
  • edit_item : ویرایش کردن دسته بندی ها
  • update_item : آپدیت آیتم
  • separate_items_with_commas : عنوان مطالبی که در دسته بندی ها نمی شود  به صورت سلسله مراتبی نوشت و کاربر آیتم ها رو با ” ، ” جدا می کند.
  • search_items : جستجوی در دسته بندی ها
  • add_or_remove_items : اضافه کردن ایتم یا حذف آیتم ها
  • choose_from_most_used : انتخاب از بین دسته بندی هایی که بیشتر استفاده شده
  • not_found : شما زمانی با این مورد روبرو می شوید که دسته بندی وجود نداشته باشد

مورد دوم : hierarchical :

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

مورد سوم : public :

این تابع وضعیت ممکن بودن کوئری گرفتن از دسته بندی ها و مشخص می کند که به صورت پیش فرض true

مورد چهارم : show_ui :

برای نمایش در مدیریت

مورد پنجم : show_admin_column :

برای نمایش دادن ستون دسته بندی ها در صفحه مطالب سایت

مورد ششم : show_in_nav_menus :

برای نمایش و استفاده در فهرست

مورد هفتم : show_tagcloud :

امکان استفاده در ابزارک برچسب ابری

مورد هشتم : query_var :

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

مورد نهم :rewrite :

از این مورد برای تغییر دسته بندی استفاده کنید و در غیر این صورت اگر از این امکان استفاده نکردید برابر با نامی می باشد که برای دسته بندی تعیین می کنید و به صورت ارایه ای می باشد .

  • slug : تعیین نامک نوع پست سفارشی
  • with_front : برای تعیین آدرس دهی در پست ها
  • hierarchical : ایجاد قابلیت سلسله ای در صورتی که این قابلیت ممکن باشد

مورد نهم : capabilities :

لیست آرایه‌ای تعیین قابلیت های نویسنده و یا کاربر برای تغییر در دسته بندی

  • manage_terms : ایجاد قابلیت برای نویسنده در نمایش دسته بندی، پیشفرض manage_categories
  • edit_terms : ایجاد قابلیت برای نویسنده در نمایش دسته بندی، پیشفرض manage_categories
  • delete_terms : ایجاد قابلیت برای نویسنده در نمایش دسته بندی، پیشفرض manage_categories
  • assign_terms : ایجاد قابلیت برای نویسنده برای نسبت دادن به مطالب نوع پست، پیشفرض edit_posts

مورد دهم : update_count_callback :

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

حال بعد از معرفی این پارامترهای مختلف به سراغ نمایش طبقه بندی مطالب و ادامه موارد مهم می پردازیم :

نمایش طبقه‌بندی مطالب

برای این کار لازمه که قطعه کدی که در زیر مشاهده می کنید در حلقه مطالب خود قرار بدهید :


<?php the_terms( get_the_ID(), 'taxonomy', 'Taxonomy: ', ', ', ' ' ); ?>

اگر به کد بالا دقت کنید پارامترهای تابع the_terms به صورت زیر می باشد :

  • ID : شناسه پست می باشد
  • Taxonomy : نامی برای دسته بندی
  • نوشته ای که قبل از نمای ایتم های دسته بندی نشان داده می شود
  • ، : جدا کننده ایتم های دسته بندی شده
  • نوشته ای که بعد از آیتم های دسته بندی نشان داده می شود

آدرس طبقه‌بندی

پس از قرار دادن قطعه کدهای بالا در سایت ، شما باید به بخش تنظیمات پنل و سپس پیوندهای یکتا بروید و تنظیمات را ذخیره نمایید . سپس باید بایگانی دسته بندی را در حالتی که پیوندهای یکتا به صورت پیش فرض می باشند باید به صورت:

http://example.com/?taxonomy_name=term
و یا
http://example.com/taxonomy_name/term

قالب نمایش طبقه‌بندی

نمایش پیش فرض بایگانی با استفاده از فایل archive.php صورت می گیرد و اگر می خواهی فایل دیگری را تغیین نمایید از قالب نام taxonomy-{taxonomy-slug}.php استفاده کنید .

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

منبع: بیگ تم مرجع قالب وردپرس و افزونه وردپرس