وبلاگ

آموزش حذف کلمه product از آدرس محصول در ووکامرس

آموزش حذف کلمه product از آدرس محصول در ووکامرس

آموزش حذف کلمه product از آدرس محصول در ووکامرس

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

به طور پیش فرض ووکامرس از نام محصول برای ایجاد آدرس محصول استفاده می‌کند اما برخی از کاربران ممکن است بخواهند که آدرس محصول را بدون مسیر "product" تنظیم کنند. در این صورت آدرس محصول فقط شامل نام فروشنده ، نام دسته بندی ، نام محصول و شناسه محصول خواهد بود. این کار ممکن است برای بهبود سئو و کوتاه شدن آدرس محصول ، مفید باشد.

برای حذف کلمه "product" از آدرس محصول در ووکامرس، می‌توان از دو روش استفاده کرد:
  1. حذف کلمه product با افزونه WooCommerce Permalink Manager
  2. حذف کلمه product از آدرس محصول با کد

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


حذف کلمه product با افزونه WooCommerce Permalink Manager

با استفاده از افزونه WooCommerce Permalink Manager می‌توانید آدرس محصول را به دلخواه خود تغییر دهید. این افزونه به شما امکان می‌دهد تا برای هر محصول آدرس دلخواه خود را ایجاد کنید. به عنوان مثال شما می‌توانید بدون استفاده از کلمه "product" آدرس محصول خود را به شکل زیر تنظیم کنید:

/https://websoltan.com/category/product-slug

برای انجام این کار ابتدا باید افزونه WooCommerce Permalink Manager را نصب و فعال کنید. سپس به مسیر "WooCommerce" و "Permalinks" در منوی وردپرس بروید. در اینجا شما می‌توانید الگوی آدرس محصول را تغییر دهید. برای حذف کلمه "product" باید الگوی آدرس را به شکل زیر تنظیم کنید:

/%product_cat%/%product_slug%/

در این حالت آدرس محصول فقط شامل نام دسته بندی و نام محصول است.

اگر شما می‌خواهید دسته بندی را نیز حذف کنید و فقط از نام محصول استفاده کنید الگوی آدرس را به شکل زیر تغییر دهید:

/%product_slug%/

بعد از اعمال تنظیمات بهتر است که یک محصول جدید را ایجاد کنید و آدرس آن را بررسی کنید تا مطمئن شوید که تغییرات به درستی اعمال شده‌اند.


حذف کلمه product از آدرس محصول با کد

یکی از ساده ترین روش ها برای حذف کلمه "product" از آدرس محصول در ووکامرس ؛ اضافه کردن کد به فایل functions.php قالب است. برای این کار نیاز هست تا تکه کدی را در انتهای فایل functions.php قالب خود وارد کنید . لطفا توجه داشته باشید که قبل از هر تغییر در قالب سایت خود میبایست ابتدا یک فول بکاپ از سایت خود تهیه کنید. در ادامه 3 کد برای شما قرار داده شده است. درصورتیکه کد اول برای شما کار نکرد میتوانید از کد دوم یا کد سوم استفاده کنید.


کد اول - جهت استفاده از کد اول میبایست کد زیر را در انتهای فایل functions.php قالب خود وارد کنید.
add_filter( 'woocommerce_product_post_type_args', 'custom_remove_product_slug' );
function custom_remove_product_slug( $args ) {
    $args['rewrite']['slug'] = '';
    return $args;
}
add_filter( 'request', 'custom_remove_product_request' );
function custom_remove_product_request( $vars ) {
    global $wpdb;
    if ( ! empty( $vars['name'] ) && ! empty( $vars['post_type'] ) && $vars['post_type'] == 'product' ) {
        $slug = $vars['name'];
        $exists = $wpdb->get_var( $wpdb->prepare( "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND post_type = %s", $slug, $vars['post_type'] ) );
        if ( $exists ) {
            $vars['name'] = '';
            $vars['product'] = $slug;
        }
    }
    return $vars;
}

این کدها فیلترهایی را به ووکامرس اضافه می‌کنند تا کلمه "product" از آدرس محصول حذف شود. بعد از اضافه کردن کد ؛ فایل functions.php را ذخیره کنید و سپس برای بررسی تغییرات یک محصول جدید در ووکامرس ایجاد کنید. شما باید ببینید که آدرس محصول شما بدون کلمه "product" است یا خیر. این روش با بیشتر قالب‌های وردپرس سازگار است و باعث تداخل در قالب‌ها و افزونه‌های دیگر نمی‌شود.


کد دوم - جهت استفاده از کد دوم میبایست کد زیر را در انتهای فایل functions.php قالب خود وارد کنید.
add_filter('post_type_link', 'remove_product_slug', 10, 3);
function remove_product_slug($permalink, $post, $leavename) {
    if ($post->post_type != 'product' || $leavename) {
        return $permalink;
    }
    $url_components = parse_url($permalink);
    $permalink = $url_components['scheme'].'://'.$url_components['host'];
    $categories = wp_get_post_terms($post->ID, 'product_cat');
    if (!empty($categories)) {
        $permalink .= '/' . $categories[0]->slug;
    }
    $permalink .= '/' . $post->post_name;
    return $permalink;
}
add_filter('rewrite_rules_array', 'remove_product_rewrite_rules');
function remove_product_rewrite_rules($rules) {
    foreach ($rules as $rule => $rewrite) {
        if (strpos($rewrite, 'product') !== false && strpos($rewrite, '%product_cat%') === false) {
            unset($rules[$rule]);
        }
    }
    return $rules;
}

این کدها فیلترهایی را به ووکامرس اضافه می‌کنند تا کلمه "product" از آدرس محصول حذف شود. بعد از اضافه کردن کد ؛ فایل functions.php را ذخیره کنید و سپس برای بررسی تغییرات یک محصول جدید در ووکامرس ایجاد کنید. شما باید ببینید که آدرس محصول شما بدون کلمه "product" است یا خیر. این روش با بیشتر قالب‌های وردپرس سازگار است و باعث تداخل در قالب‌ها و افزونه‌های دیگر نمی‌شود.


کد سوم - جهت استفاده از کد سوم میبایست کد زیر را در انتهای فایل 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' );

این کدها فیلترهایی را به ووکامرس اضافه می‌کنند تا کلمه "product" از آدرس محصول حذف شود. بعد از اضافه کردن کد ؛ فایل functions.php را ذخیره کنید و سپس برای بررسی تغییرات یک محصول جدید در ووکامرس ایجاد کنید. شما باید ببینید که آدرس محصول شما بدون کلمه "product" است یا خیر. این روش با بیشتر قالب‌های وردپرس سازگار است و باعث تداخل در قالب‌ها و افزونه‌های دیگر نمی‌شود.


آیا حذف کلمه "product" از آدرس محصول باعث تغییر در آدرس‌های محصولات قبلی می‌شود؟

بله حذف کلمه "product" از آدرس محصول ممکن است باعث تغییر در آدرس‌های محصولات قبلی شما شود. اگر شما قبلاً محصولاتی را با آدرس‌هایی شامل کلمه "product" ایجاد کرده‌اید و سپس این کلمه را از آدرس محصول حذف کنید، آدرس‌های قدیمی شما دیگر معتبر نخواهند بود و ممکن است به خطای 404 منجر شوند.

بنابراین اگر شما قصد دارید کلمه "product" را از آدرس محصول حذف کنید ، باید اطمینان حاصل کنید که تمامی آدرس‌های قبلی شما به طور صحیح به آدرس‌های جدید ریدایرکت شده اند. برای این کار شما می‌توانید از افزونه‌هایی مانند Redirection استفاده کنید که به شما امکان مدیریت و ایجاد تغییرات در آدرس‌های قدیمی و جدید را می‌دهند. به علاوه شما باید مطمئن شوید که هیچ پیوند داخلی در سایت شما به آدرس‌های قدیمی ارجاع داده نمیشود و همه پیوندها به آدرس‌های جدید ارجاع داده می‌شوند.

اگر شما قصد دارید این تغییرات را اعمال کنید ، بهتر است یک فول بکاپ از سایت خود بگیرید تا در صورت بروز مشکل بتوانید سایت خود را به حالت اولیه بازگردانید. همچنین درصورت نیاز بهتر است با یک متخصص SEO مشورت کنید تا از بروز مشکلات SEO جلوگیری شود.

درصورتیکه سوال یا ابهامی در این زمینه داشتید میتوانید با شماره تماس 09223125905 تماس حاصل کنید.


نتیجه گیری

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

آخرین دوره های آموزشی

دیدگاهتان را بنویسید

درخواست مشاوره رایگان

در صورت نیاز به مشاوره می توانید فرم را تکمیل نمایید و یا با ما در ارتباط باشید.