ریدایرکت صفحات پیوست به پست والد در وردپرس (Redirect Attachment Pages)
با هوک `template_redirect`، تمام صفحات پیوست را با کد ریدایرکت ۳۰۱ دائمی به پست والد یا صفحه اصلی هدایت کنید.
مشخصات فنی و شناسنامه کد (Code Information)
بازبینی: 1405/06/29<?php
/**
* هدایت صفحات پیوست تصاویر به نوشته والد یا صفحه اصلی با ریدایرکت ۳۰۱
* جهت حذف محتوای بیکیفیت (Thin Content) و بهبود سئوی تکنیکال
*/
function bisco_redirect_attachment_pages() {
if ( is_attachment() ) {
global $post;
if ( ! empty( $post->post_parent ) && is_numeric( $post->post_parent ) ) {
$parent_url = get_permalink( $post->post_parent );
wp_safe_redirect( $parent_url, 301 );
exit;
} else {
// در صورتی که عکس والدی نداشته باشد، به صفحه اصلی ریدایرکت شود
wp_safe_redirect( home_url( '/' ), 301 );
exit;
}
}
}
add_action( 'template_redirect', 'bisco_redirect_attachment_pages' );
کد را کجا قرار دهیم؟ (Placement Guide)
کد را در فایل functions.php قرار دهید.
این کد چگونه کار میکند؟ (How it Works)
قبل از رندر قالب، شرط is_attachment بررسی میشود؛ در صورت مشاهده صفحه پیوست، تابع wp_safe_redirect پاسخ 301 داده و خزش صفحات زائد را خاتمه میدهد.
چه زمانی از این کد استفاده کنیم؟ (Use Cases)
در تمام سایتهای وردپرسی که صفحات پیوست در نتایج گوگل ایندکس شده و باعث افت بودجه خزش (Crawl Budget) شدهاند.
چه زمانی نباید از این کد استفاده کنیم؟ (Anti-patterns)
اگر افزونه یواست سئو یا رنکمث دارید و این گزینه را قبلاً در تنظیمات آنها فعال کردهاید (جهت پرهیز از تکرار).
پیشنیازهای اجرا
وردپرس ۲.۰ به بالا.
نحوه تست و اطمینان از عملکرد
آدرس یکی از صفحات پیوست (مانند site.com/?attachment_id=123) را در مرورگر باز کنید؛ بلافاصله باید به نوشته اصلی ریدایرکت شوید.
نحوه بازگردانی سریع (Rollback)
کد را حذف کنید.
خطاهای رایج و راهحل رفع
استفاده از کد 302 موقت به جای 301 دائمی.
ملاحظات و نکات امنیتی
استفاده از wp_safe_redirect مانع از حملات Open Redirect به دامنههای خارجی میشود.
تاثیر بر سرعت و پرفورمنس
بهینهسازی مستقیم بودجه خزش گوگل و تمرکز اعتبار صفحات روی مقالات اصلی.