رفتن به مطلب

تغییر لینک دهی به صفحات


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

دروود

ما دسته بندی هامون این شکلی صفحه بندی میکنه : 

sitename.com/category/name-cat/page/2/

و می خواهیم این شکلی صفحه بندی بشه :

sitename.com/category/namecat?page=2

آیا دوستان راه حلی دارند برای این مسئله ؟ 

لینک به ارسال
در 9 ساعت قبل، bijame گفته است :

دروود

ما دسته بندی هامون این شکلی صفحه بندی میکنه : 

sitename.com/category/name-cat/page/2/

و می خواهیم این شکلی صفحه بندی بشه :

sitename.com/category/namecat?page=2

آیا دوستان راه حلی دارند برای این مسئله ؟ 

از پیوند یکتا مگه نمیتونید انجام بدید ؟

لینک به ارسال
در 1 ساعت قبل، bijame گفته است :

نه دوست عزیز همچین چیزی امکان نداره از پیوند یکتا

سلام و درود

 

همچین چیزی ممکن نیست به علت اینکه کوئری استرینگ page توسط وردپرس از قبل رزرو شده.

 

موفق باشید

لینک به ارسال
در 4 ساعت قبل، mehran-b گفته است :

سلام و درود

 

همچین چیزی ممکن نیست به علت اینکه کوئری استرینگ page توسط وردپرس از قبل رزرو شده.

 

موفق باشید

هیچ راحی وجود نداره برای رفع این مسئله ؟ 

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

هیچ راحی وجود نداره برای رفع این مسئله ؟ 

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

احتمال داره بشه یه جوری این کوئری رو به صفحه بندی اختصاص داد ولی نمیدونم چجوری.

لینک به ارسال

البته یه نکته ای هم هست وردپرس صفحه بندی رو با کوئری استرینگ paged هندل میکنه.

یعنی توی وردپرس

sitename.com/category/name-cat?paged=2

معادله با

sitename.com/category/name-cat/page/2/

هست.

اگر آدرس اول رو وارد کنید میبینید که ریدایرکت میشید به آدرس دوم.

 

موفق باشید

لینک به ارسال
در 19 ساعت قبل، mehran-b گفته است :

البته یه نکته ای هم هست وردپرس صفحه بندی رو با کوئری استرینگ paged هندل میکنه.

یعنی توی وردپرس


sitename.com/category/name-cat?paged=2

معادله با


sitename.com/category/name-cat/page/2/

هست.

اگر آدرس اول رو وارد کنید میبینید که ریدایرکت میشید به آدرس دوم.

 

موفق باشید

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

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

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

خوب راه اصلیش اینه که شما توی بخش پیوند های یکتا تنظیمات عمومی رو روی ساده بذارید.

لینک به ارسال
در 24 دقیقه قبل، mehran-b گفته است :

خوب راه اصلیش اینه که شما توی بخش پیوند های یکتا تنظیمات عمومی رو روی ساده بذارید.

خب اینجوری کل صفحات پست ها این اتفاق میافته من نیاز دارم که فقط صفحات 2 - 3 - 4 و... این شکلی بشه 

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

خب اینجوری کل صفحات پست ها این اتفاق میافته من نیاز دارم که فقط صفحات 2 - 3 - 4 و... این شکلی بشه 

فقط صفحه بندی اینطوری بشه.

باید فک کنم روش الان چیزی به ذهنم نمیرسه.

موردی به ذهنم رسید تاپیک رو بروز میکنم.

لینک به ارسال

درود مجدد @bijame

 

یه پلاگین برای این منظور آماده کردم.

disable-permalink-only-for-pagination.zip

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

<?php

قرار بدید.

final class Mehran_DPOP {
	
	public static function instance() {
		
		new self();
		
	}
	
	public function __construct() {
		
		add_action('parse_query', array($this, 'parse_query'), 999);
		add_filter('redirect_canonical', array($this, 'redirect_canonical'), 999);
		add_filter('get_pagenum_link', array($this, 'get_pagenum_link'), 999);
		
	}
	
	public function parse_query($wp_query) {
		
		global $wp, $wp_rewrite;
	
		if($wp_query->is_paged() && $wp_rewrite->using_permalinks()) {
		
			if(preg_match("/({$wp_rewrite->pagination_base}\/\d[\/]?)$/", home_url($wp->request), $matches)) {
				
				$url = str_replace($matches[1], '', home_url($wp->request));
				
				$url = add_query_arg('paged', $wp_query->query['paged'], $url);
				
				wp_redirect($url, 301);
				exit();
				
			}
		
		}
		
	}
	
	public function redirect_canonical($redirect_url) {
		
		global $wp_rewrite;
		
		if(!$wp_rewrite->using_permalinks())
			return $redirect_url;
		
		if(preg_match("/({$wp_rewrite->pagination_base}\/\d[\/]?)$/", $redirect_url, $matches)) {
			
			$url = str_replace($matches[1], '', $redirect_url);
			
			$url = add_query_arg('paged', get_query_var('paged'), $url);
			
			return $url;
			
		}
		
		return $redirect_url;
		
	}
	
	public function get_pagenum_link($result) {
		
		global $wp_rewrite;
		
		if(!$wp_rewrite->using_permalinks())
			return $result;
		
		if(preg_match("/({$wp_rewrite->pagination_base}\/(\d)[\/]?)$/", $result, $matches)) {
			
			$url = str_replace($matches[1], '', $result);
			
			$url = add_query_arg('paged', $matches[2], $url);
			
			return $url;
			
		}
		
		return $result;
		
	}
	
}

Mehran_DPOP::instance();

 

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

 

موفق باشید

لینک به ارسال

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

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

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

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

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

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

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

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

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