ریدایرکت کاربر به نوشته در دسته بندی دارای یک نوشته

با سلام خدمت دوستان عزیز وردپرسی!

همانطور که می‌دانید در حالت عادی وقتی به آدرس یک دسته بندی به هر طریقی چه از طریق جستجو و چه مراجعه مستقیم به آدرس استفاده کنید مطالب موجود در آن دسته بندی نمایش داده خواهند شد.

اما گاها پیش می‌آید که در یک دسته بندی صرفا یک نوشته قرار دارد، لذا با این کار کاربر یک بار دیگر باید کلیک کند تا به نوشته هدایت شود.

بنابراین در این آموزش از دکتر وردپرس قصد دارم تا به معرفی قطعه کدی بپردازم که با استفاده از آن قادر خواهید بود تا دسته‌بندی هایی که دارای یک نوشته هستند را به گونه ای تعیین کنید که به صورت خودکار به نوشته ریدایرکت شوند.

ریدایرکت کاربر به نوشته در دسته بندی دارای یک نوشته

ریدایرکت کاربر به نوشته در دسته بندی دارای یک نوشته
ریدایرکت کاربر به نوشته در دسته بندی دارای یک نوشته

برای شروع کار وارد ویرایش فایل فانکشن (functions.php) قالب خود شده و کدهای زیر را در آن قرار داده و آن را ذخیره کنید.

function redirect_to_post(){
global $wp_query;
if( is_archive() && $wp_query->post_count == 1 ){
the_post();
$post_url = get_permalink();
wp_redirect( $post_url );
}
} add_action('template_redirect', 'redirect_to_post');

سپس آن را ذخیره کرده و آدرس یکی از دسته بندی‌های سایت خود را که شامل یک نوشته هستند باز کنید. خواهید دید که پس از چند ثانیه به صورت خودکار به نوشته موجود ریدایرکت خواهید شد.

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

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

function redirect_to_post(){
global $wp_query;
if( is_archive() && $wp_query->post_count == 1 ){
the_post();
$post_url = get_permalink();
wp_redirect( $post_url );
}
echo "این دسته بندی تنها دارای یک نوشته می‌باشد و تا چند ثانیه دیگر به صورت خودکار به ان نوشته ریدایرکت خواهید شد :D";
}
add_action('template_redirect', 'redirect_to_post');

حال قبل از ریدایرکت کاربر به لینک نوشته پیام فوق نمایش داده شده و پس از چند ثانیه ریدایرکت خواهد شد.

موفق باشید..

امتیاز شما برای این مقاله
ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.