ReziOnline

کد نمایش نامک دسته مادر

6 پست در این موضوع قرار دارد

سلام دوستان

میخوام متن نامک دسته مادر یک پست رو در بخشی از سایتم نمایش بدم
برای مثال یک پست در دسته بندی زیر دارم:
site.com/cat/game/action

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

0

به اشتراک گذاری این پست


لینک به پست

سلام و درود @ReziOnline

 

کد زیر میره توی فایل functions.php قالب سایت و زیر اولین

<?php

قرار میگیره.

function mehran_get_parent_slug($cat_ID) {
	
	if(!is_numeric($cat_ID))
		return "";
	
	$category = get_term((int) $cat_ID, 'category');
	
	if(is_wp_error($category))
		return "";
	
	while($category->parent != 0) {
		
		$category = get_term((int) $category->parent, 'category');
		
	}
	
	return $category->slug;
	
}

سپس توی هر فایل قالب که نیاز داشتید اصطلاحا slug دسته مادر رو نمایش بدید به این شکل عمل میکنید.

<?php echo mehran_get_parent_slug(7); ?>

عدد 7 منظور اینه که slug دسته مادر دسته فرزند 7 رو چاپ کن.

 

پ.ن : در صورتی که به تابع آیدی یک دسته فرزند رو بدید slug دسته مادرش رو چاپ میکنه ولی اگر آیدی دسته مادر رو بدید slug همون دسته ای که بهش دادید رو چاپ میکنه.

 

موفق باشید

1

به اشتراک گذاری این پست


لینک به پست

ممنون از شما. اما اگر بخوایم slug دسته مادر هر پست رو نشون بده باید چه کدی رو قرار داد؟ طوری که این کد رو در نوشته تکی بذاریم و slug دسته مادر هر پست رو نمایش بده

0

به اشتراک گذاری این پست


لینک به پست
در 8 ساعت قبل، ReziOnline گفته است :

ممنون از شما. اما اگر بخوایم slug دسته مادر هر پست رو نشون بده باید چه کدی رو قرار داد؟ طوری که این کد رو در نوشته تکی بذاریم و slug دسته مادر هر پست رو نمایش بده

برای این قضیه تابع شما به این شکل میشه:

function mehran_get_parent_category_slug($post_id = false) {
	
	$categories = get_the_category((int) $post_id);
	
	if(empty($categories))
		return '';
	
	$parent_cats_id = array();
	$parent_cats_slug = array();
	
	foreach($categories as $cat) {
		
		if($cat->parent == 0) {
			$parent_cats_id[] = $cat->term_id;
			$parent_cats_slug[$cat->term_id] = $cat->slug;
		}
		
	}
	
	if($parent_cats_id === array())
		return '';
	
	$parent = min($parent_cats_id);
	
	return $parent_cats_slug[(int) $parent];
	
}

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

<?php echo mehran_get_parent_category_slug(7); ?>

توی کد بالا 7 آیدی پسته.

 

موفق باشید

1

به اشتراک گذاری این پست


لینک به پست

متشکرم. با کد زیر میشه بدون نیاز به کدهای توابع، نامک دسته رو نمایش داد:

<?php
    // get category slug in wordpress
    if ( is_single() ) {
        $cats =  get_the_category();
        $cat = $cats[0];
    } else {
        $cat = get_category( get_query_var( 'cat' ) );
    }
    $cat_slug = $cat->slug;
    echo $cat_slug;
?>

 

0

به اشتراک گذاری این پست


لینک به پست
در 2 ساعت قبل، ReziOnline گفته است :

متشکرم. با کد زیر میشه بدون نیاز به کدهای توابع، نامک دسته رو نمایش داد

این کد که شما دادی 100 در 100 نیست.

یعنی توی بعضی از مواقع slug دسته فرزند رو میده.

2

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری