Redirect WordPress in Header

هدایت مجدد وردپرس

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

با این حال ، من یک مشکل منحصر به فرد پیدا کردم که در آن یک پروکسی معکوس برای مشتری ایجاد کرده ام که در آن وردپرس در یک مسیر اجرا می شود ... اما نه ریشه سایت. سایت اصلی با استفاده از IIS در Azure در حال اجرا است. IIS می تواند هدایت ها را درست مانند هر وب سروری مدیریت کند ، اما مشکل این است که این مشتری باید مدیریت تغییر مسیر را در فرآیند توسعه خود قرار دهد - و آنها از قبل مشغول هستند.

مسئله این است که تغییر مسیر معمولی سبک .htaccess امکان پذیر نیست ... ما باید هدایت ها را در PHP بنویسیم. به عنوان یک راه حل ، ما درخواست ها را به وردپرس هدایت می کنیم تا در صورت وجود تغییر مسیر در مسیرهای قدیمی ، شناسایی کنیم.

در فایل header.php پرونده تم کودک ما ، ما یک عملکرد داریم:

function my_redirect ($oldlink, $newlink, $redirecttype = 301) {
	$olduri = $_SERVER['REQUEST_URI'];
	if(strpos($olduri, $oldlink) !== false) {
		$newuri = str_replace($oldlink, $newlink, $olduri);
		wp_redirect( $newuri, $redirecttype );
		exit;
	}
}

ما زحمت قرار دادن این تابع در توابع function.php را نداریم ، فقط به این دلیل که فقط روی پرونده هدر تأثیر می گذارد. سپس ، در داخل فایل header.php ، ما به سادگی لیستی از تمام هدایت ها را داریم:

my_redirect('lesson_plans', 'lesson-plan');
my_redirect('resources/lesson-plans/26351', 'lesson-plan/tints-and-shades');
my_redirect('about/about', 'about/company/');

با استفاده از این عملکرد ، شما همچنین می توانید نوع هدایت را تنظیم کنید که می خواهید درخواست هدر را تنظیم کنید ، ما به طور پیش فرض آن را به 301 تغییر مسیر دادیم تا موتورهای جستجو از آن احترام بگذارند.

شما چه فکر میکنید؟

این سایت از Akismet برای کاهش هرزنامه استفاده می کند. بدانید که چگونه نظر شما پردازش می شود.