رفتن به مطلب

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


p3i

پست های پیشنهاد شده

سلام 

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

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

لینک به ارسال
در 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);
	    }
	}
	
}
?>

 

لینک به ارسال
در هم اکنون، 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() ?>

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

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

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

 

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

<?php the_category (',') ?>

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

لینک به ارسال

@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 میتونید نتیجه رو ببینید.

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

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


<?php the_category (',') ?>

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

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

لینک به ارسال
در هم اکنون، 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
لینک به ارسال
در 4 ساعت قبل، p3i گفته است :

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

بله

لینک به ارسال

@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;
    
});

 

لینک به ارسال
در هم اکنون، 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;
    
});

 

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

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...