- تاریخ : 1st نوامبر 2020
- موضوع : اسکریپت , اسکریپت جدید , اسکریپت رایگان , اسکریپت فارسی
- بازدید : 155 نمایش
- نظرات : بدون نظر
ساخت قالب اختصاصی برای خطای ۴۰۳ و ۴۰۱ در وردپرس
چند روز پیش که یکی از کاربران عزیز هممیهن سوالی مبنی بر ساخت قالب اختصاصی برای خطای ۴۰۳ و ۴۰۱ ارسال کرده بودند به این نتیجه رسیدم که برای ساخت صفحه ۴۰۳ و ۴۰۱ در وردپرس راهی نیست. مگر اینکه از روشهای دیگری برای ساخت این صفحات اختصاصی استفاده کنیم.
همانطور که در دوره ۰ تا ۱۰۰ طراحی سایت با وردپرس یاد گرفتیم، برای ساخت قالب اختصاصی خطای ۴۰۴ در وردپرس، میتوانیم یک فایل ۴۰۴٫php در قالب سایتمان ایجاد کنیم. سپس هر کدی که میخواهیم را در این فایل بنویسیم و در نهایت به عنوان مثال چنین قالبی برای خطای ۴۰۴ ایجاد کنیم:
اما برای خطای ۴۰۳ این روش جوابگو نیست. چراکه خطای ۴۰۳ از سمت سرور فراخوانی میشود و قالب این صفحه هم از سمت سرور نمایش داده میشود. به این شکل:
در هر صورت همیشه راهی برای انجام کارها در وردپرس هست. چرا که وردپرس قابلیت درج هر نوع کد PHP را دارد. پس ببینیم چطور میتوان صفحات سفارشی ۴۰۳ و ۴۰۱ را در وردپرس ایجاد کرد.
ساخت چایلدتم برای قالب
در ابتدا اگر برای قالب سایت خود چایلدتم ایجاد نکردهاید، همین حالا شروع به ساخت چایلدتم کنید. اگر نمیدانید چایلدتم چیست، مقاله ما درباره چایلدتم را بخوانید. به این جهت چایلدتم را ایجاد میکنیم که اگر از قالب آماده وردپرس مثل قالب اهورا استفاده میکنید، طبیعتا این قالبها آپدیت میشوند و با آپدیت قالب تغییرات شما روی قالب حذف خواهد شد.
ساخت قالب اختصاصی برای خطای ۴۰۳
حالا وارد پوشه قالب یا پوشه چایلدتم قالب میشویم. سپس فایلی با نام زیر ایجاد میکنیم.
۴۰۳٫php
این فایل محتویات صفحه خطای ۴۰۳ را ذخیره خواهد کرد. مثلا در این فایل میتوانیم بنویسیم: خوش آمدی اما به اینجا دسترسی نداری!
البته راه بهتری هم هست. اینکه فایل ۴۰۴ را کپی کرده و با نام ۴۰۳ ذخیره کنیم.
همین کار را برای خطای ۴۰۱ هم انجام میدهیم، یعنی فایلی با نام زیر در پوشه قالب ایجاد میکنیم و کدهای دلخواه خود را آنجا مینویسیم.
۴۰۱٫php
ویرایش فایل functions.php
حالا به مرحله اصلی رسیدیم. کافیست وارد فایل functions.php قالب سایتتان شوید. سپس این کدها را در این فایل اضافه کنید. کدها باید در انتهای فایل فانشکن قبل از ?> اضافه شوند.
function mihanwp_custom_error_pages()
{
global $wp_query;
if(isset($_REQUEST['status']) && $_REQUEST['status'] == 403)
{
$wp_query->is_404 = FALSE;
$wp_query->is_page = TRUE;
$wp_query->is_singular = TRUE;
$wp_query->is_single = FALSE;
$wp_query->is_home = FALSE;
$wp_query->is_archive = FALSE;
$wp_query->is_category = FALSE;
add_filter('wp_title','mihanwp_custom_error_title',65000,2);
add_filter('body_class','mihanwp_custom_error_class');
status_header(403);
get_template_part('403');
exit;
}
if(isset($_REQUEST['status']) && $_REQUEST['status'] == 401)
{
$wp_query->is_404 = FALSE;
$wp_query->is_page = TRUE;
$wp_query->is_singular = TRUE;
$wp_query->is_single = FALSE;
$wp_query->is_home = FALSE;
$wp_query->is_archive = FALSE;
$wp_query->is_category = FALSE;
add_filter('wp_title','mihanwp_custom_error_title',65000,2);
add_filter('body_class','mihanwp_custom_error_class');
status_header(401);
get_template_part('401');
exit;
}
}
function mihanwp_custom_error_title($title='',$sep='')
{
if(isset($_REQUEST['status']) && $_REQUEST['status'] == 403)
return "Forbidden ".$sep." ".get_bloginfo('name');
if(isset($_REQUEST['status']) && $_REQUEST['status'] == 401)
return "Unauthorized ".$sep." ".get_bloginfo('name');
}
function mihanwp_custom_error_class($classes)
{
if(isset($_REQUEST['status']) && $_REQUEST['status'] == 403)
{
$classes[]="error403";
return $classes;
}
if(isset($_REQUEST['status']) && $_REQUEST['status'] == 401)
{
$classes[]="error401";
return $classes;
}
}
add_action('wp','mihanwp_custom_error_pages');
به همین راحتی! حالا کافیست یکی از صفحات سایت خود که با خطای ۴۰۳ مواجه است را مشاهده کنید.
خطا به شکل کدهایی که در فایل ۴۰۳ ذخیره کردهاید نمایش داده خواهد شد.
موفق باشید.
به نکات زیر توجه کنید