حذف product از urlها در ووکامرس

ممکنه برای شما هم پیش اومده باشه که به دلایلی بخصوص بحث سئو ترجیح بدید که آدرس صفحات محصولات سایت فروشگاهی‌تون که با وردپرس و پلاگین ووکامرس ایجاد شده کوتاه‌تر بشن و  /product/  از اون‌ها حذف بشه.

راه‌های مختلفی برای انجام این کار هست و پلاگین‌هایی هم عرضه شده، اما من به شخصه استفاده از پلاگین رو نمی‌پسندم چون دردسرهای خاص خودش رو داره. راهکاری که همکارم آقای محمد جمالو در این خصوص به من ارائه کرد اضافه کردن فانکشن حذف این بخش از آدرس توی فایل functions.php از پوشه تم سایت وردپرسی شماست.

کافیه کد زیر رو به انتهای فایل functions.php قالبتون اضافه کنید.

function remove_cpt_slug( $post_link, $post, $leavename ) {

if ( 'product' != $post->post_type || 'publish' != $post->post_status ) {
return $post_link;
}

$post_link = str_replace( '/' . $post->post_type . '/', '/', $post_link );

return $post_link;
}
add_filter( 'post_type_link', 'remove_cpt_slug', 10, 3 );

function parse_request_trick( $query ) {

if ( ! $query->is_main_query() )
return;

if ( 2 != count( $query->query ) || ! isset( $query->query['page'] ) ) {
return;
}

if ( ! empty( $query->query['name'] ) ) {
$query->set( 'post_type', array( 'post', 'page', 'product' ) );
}
}
add_action( 'pre_get_posts', 'parse_request_trick' );

نکته خیلی خیلی مهم >> بعد از این کار حتما مراقب باشید که آدرس پیوند یکتای پست‌ها و محصولاتتون یکی نباشه، چون تداخل پیش میاد و صفحه‌ی مورد نظر تو اون آدرس نمایش داده نمی‌شه

منتشرشده توسط

FaЯshid

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

یک دیدگاه در “حذف product از urlها در ووکامرس”

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *