p3i

نمایش دسته اصلی yoast در پست ها

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

سلام 

من از افزونه yoast واسه سئو استفاده میکنم یه قابلیت داره که میتونی یک دسته رو به عنوان دسته اصلی انتخاب کنی 

حالا میخواستم این دسته اصلی رو در پست ها نشون بدم فقط دسته اصلی رو میشه لطفا بگید چیکار کنم ؟

0

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


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

سلام 

من از افزونه yoast واسه سئو استفاده میکنم یه قابلیت داره که میتونی یک دسته رو به عنوان دسته اصلی انتخاب کنی 

حالا میخواستم این دسته اصلی رو در پست ها نشون بدم فقط دسته اصلی رو میشه لطفا بگید چیکار کنم ؟

سلام

از این کد استفاده کنید.

<?php 
// SHOW YOAST PRIMARY CATEGORY, OR FIRST CATEGORY
$category = get_the_category();
$useCatLink = true;
// If post has a category assigned.
if ($category){
	$category_display = '';
	$category_link = '';
	if ( class_exists('WPSEO_Primary_Term') )
	{
		// Show the post's 'Primary' category, if this Yoast feature is available, & one is set
		$wpseo_primary_term = new WPSEO_Primary_Term( 'category', get_the_id() );
		$wpseo_primary_term = $wpseo_primary_term->get_primary_term();
		$term = get_term( $wpseo_primary_term );
		if (is_wp_error($term)) { 
			// Default to first category (not Yoast) if an error is returned
			$category_display = $category[0]->name;
			$category_link = get_category_link( $category[0]->term_id );
		} else { 
			// Yoast Primary category
			$category_display = $term->name;
			$category_link = get_category_link( $term->term_id );
		}
	} 
	else {
		// Default, display the first category in WP's list of assigned categories
		$category_display = $category[0]->name;
		$category_link = get_category_link( $category[0]->term_id );
	}
	// Display category
	if ( !empty($category_display) ){
	    if ( $useCatLink == true && !empty($category_link) ){
		echo '<a class="post-category" href="'.$category_link.'">'.htmlspecialchars($category_display).'</a>';
	    } else {
		echo htmlspecialchars($category_display);
	    }
	}
	
}
?>

 

1

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


لینک به پست
در هم اکنون، muhmdzarei گفته است :

سلام

از این کد استفاده کنید.


<?php 
// SHOW YOAST PRIMARY CATEGORY, OR FIRST CATEGORY
$category = get_the_category();
$useCatLink = true;
// If post has a category assigned.
if ($category){
	$category_display = '';
	$category_link = '';
	if ( class_exists('WPSEO_Primary_Term') )
	{
		// Show the post's 'Primary' category, if this Yoast feature is available, & one is set
		$wpseo_primary_term = new WPSEO_Primary_Term( 'category', get_the_id() );
		$wpseo_primary_term = $wpseo_primary_term->get_primary_term();
		$term = get_term( $wpseo_primary_term );
		if (is_wp_error($term)) { 
			// Default to first category (not Yoast) if an error is returned
			$category_display = $category[0]->name;
			$category_link = get_category_link( $category[0]->term_id );
		} else { 
			// Yoast Primary category
			$category_display = $term->name;
			$category_link = get_category_link( $term->term_id );
		}
	} 
	else {
		// Default, display the first category in WP's list of assigned categories
		$category_display = $category[0]->name;
		$category_link = get_category_link( $category[0]->term_id );
	}
	// Display category
	if ( !empty($category_display) ){
	    if ( $useCatLink == true && !empty($category_link) ){
		echo '<a class="post-category" href="'.$category_link.'">'.htmlspecialchars($category_display).'</a>';
	    } else {
		echo htmlspecialchars($category_display);
	    }
	}
	
}
?>

 

برای استفاده در پست هم میشه بگید چطور فراخوانی کنم این کد هارو در github و چند جای دیگه پیدا کردم و قرار دادم اما تغییری نکرد؟

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

<?php the_category (',') ?>

وقتی به این کد

<?php get_get_category() ?>

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

0

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


لینک به پست
در 54 دقیقه قبل، p3i گفته است :

برای استفاده در پست هم میشه بگید چطور فراخوانی کنم این کد هارو در github و چند جای دیگه پیدا کردم و قرار دادم اما تغییری نکرد؟

 

صفحه single.php رو ویرایش کنید. و به جای 

<?php the_category (',') ?>

کدی که قرار دادم رو بزارید.

0

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


لینک به پست

@p3i

 

شما داخل فایل functions.php کد زیر رو اضافه کنید.

add_filter('the_category_list', function($categories, $post_id) {
	
	if(empty(get_post_meta($post_id, '_yoast_wpseo_primary_category', true)))

		return $categories;
		
	$yCatId = get_post_meta($post_id, '_yoast_wpseo_primary_category', true);
	
	$yCatObj = get_term(absint($yCatId));
	
	if(!is_wp_error($yCatObj) && !is_null($yCatObj))
		
		return array($yCatObj);
		
	return $categories;
	
}, 10, 2);

سپس با استفاده از همون تابع the_category میتونید نتیجه رو ببینید.

4

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


لینک به پست
در هم اکنون، muhmdzarei گفته است :

صفحه single.php رو ویرایش کنید. و به جای 


<?php the_category (',') ?>

کدی که قرار دادم رو بزارید.

یعنی کل اون کد رو به جای the_category در فایل سینگل قرار بدم ؟!!!!! 

1

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


لینک به پست

ارسال شده در (ویرایش شده)

در هم اکنون، mehran-b گفته است :

@p3i

 

شما داخل فایل functions.php کد زیر رو اضافه کنید.


add_filter('the_category_list', function($categories, $post_id) {
	
	if(empty(get_post_meta($post_id, '_yoast_wpseo_primary_category', true)))

		return $categories;
		
	$yCatId = get_post_meta($post_id, '_yoast_wpseo_primary_category', true);
	
	$yCatObj = get_term(absint($yCatId));
	
	if(!is_wp_error($yCatObj) && !is_null($yCatObj))
		
		return array($yCatObj);
		
	return $categories;
	
}, 10, 2);

سپس با استفاده از همون تابع the_category میتونید نتیجه رو ببینید.

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

مثلا من این پست رو در دسته های مطلب اختصاصی ، بازی و مود بازی قرار دادم و دسته اصلی رو مود بازی انتخاب کردم اما دسته بازی رو نشون میده 

https://p3i.ir/game/game-mod/آموزش-تغییر-تصویر-لودینگ-gta-v/

یا این پست در دسته های مطلب اختصاصی ، آموزش و ترفد ویندوز و دسته اموزش نرم افزار قرار دادم و اصلیشو آموزش و ترفند ویندوز ست کردم اما اموزش نرم افزار رو نشون میده

https://p3i.ir/pc-net/win-learn/چند-روش-حل-مشکل-ناخوانا-بودن-زیر-نویس-فا/

ممنون

ویرایش شده در توسط p3i
0

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


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

یعنی کل اون کد رو به جای the_category در فایل سینگل قرار بدم ؟!!!!! 

بله

0

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


لینک به پست

@p3i

 

یه ایراد کوچیک داشت.

add_filter('the_category_list', function($categories) {
	
	global $post;
	
	if(empty(get_post_meta($post->ID, '_yoast_wpseo_primary_category', true)))

		return $categories;
		
	$yCatId = get_post_meta($post->ID, '_yoast_wpseo_primary_category', true);
	
	$yCatObj = get_term(absint($yCatId));
	
	if(!is_wp_error($yCatObj) && !is_null($yCatObj))
		
		return array($yCatObj);
		
	return $categories;
    
});

 

4

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


لینک به پست
در هم اکنون، mehran-b گفته است :

@p3i

 

یه ایراد کوچیک داشت.


add_filter('the_category_list', function($categories) {
	
	global $post;
	
	if(empty(get_post_meta($post->ID, '_yoast_wpseo_primary_category', true)))

		return $categories;
		
	$yCatId = get_post_meta($post->ID, '_yoast_wpseo_primary_category', true);
	
	$yCatObj = get_term(absint($yCatId));
	
	if(!is_wp_error($yCatObj) && !is_null($yCatObj))
		
		return array($yCatObj);
		
	return $categories;
    
});

 

عالییییی بود مرسی رفیق خیلی کاربردی بود میشه گفت اموزش اختصاصی فروم حساب میشه 

0

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


لینک به پست
در 3 دقیقه قبل، p3i گفته است :

عالییییی بود مرسی رفیق خیلی کاربردی بود میشه گفت اموزش اختصاصی فروم حساب میشه 

خواهش میکنم.

موفق باشید

1

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


لینک به پست

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

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

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

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


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

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

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


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