Xóa Product Category Slug trong Worpdress như thế nào?

Thảo luận trong 'Mã nguồn mở Wordpress' bắt đầu bởi seolagi, 27/12/20.

  1. seolagi
    Tham gia ngày:
    16/4/14
    Bài viết:
    1,030
    Đã được thích:
    81
    Điểm thành tích:
    48
    Hi mọi người, hiện tại mình đang code trang sản phẩm của wodpress thì bị lỗi vướng phải cái Slug chuyên mục category url nó toàn bị dính chữ /san-pham/-tên chuyên mục sản phẩm. Có cách nào xóa cái Slug chữ san-pham phia sau để nó giống các chuyên mục của tin tức không?

    Mình chỉ muốn xóa mỗi cái category slug sản phẩm thôi ha, còn vào bài viết sản phẩm vẫn có chữ san-pham/ten-san-pham như cũ.

    Cảm ơn
     
    Cảm ơn đã xem bài:

    Xóa Product Category Slug trong Worpdress như thế nào?

  2. admin
    Tham gia ngày:
    22/5/13
    Bài viết:
    4,906
    Đã được thích:
    1,199
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Cách 1:

    Bạn chỉ muốn xóa mỗi Slug của category sản phẩm chuyên mục thì add code sau vô function.php nhé.
    PHP:
    add_filter('request', function( $vars ) {
      global 
    $wpdb;
      if( ! empty( 
    $vars['pagename'] ) || ! empty( $vars['category_name'] ) || ! empty( $vars['name'] ) || ! empty( $vars['attachment'] ) ) {
         
    $slug = ! empty( $vars['pagename'] ) ? $vars['pagename'] : ( ! empty( $vars['name'] ) ? $vars['name'] : ( !empty( $vars['category_name'] ) ? $vars['category_name'] : $vars['attachment'] ) );
         
    $exists $wpdb->get_var$wpdb->prepare"SELECT t.term_id FROM $wpdb->terms t LEFT JOIN $wpdb->term_taxonomy tt ON tt.term_id = t.term_id WHERE tt.taxonomy = 'product_cat' AND t.slug = %s" ,array( $slug )));
         if( 
    $exists ){
            
    $old_vars $vars;
            
    $vars = array('product_cat' => $slug );
            if ( !empty( 
    $old_vars['paged'] ) || !empty( $old_vars['page'] ) )
               
    $vars['paged'] = ! empty( $old_vars['paged'] ) ? $old_vars['paged'] : $old_vars['page'];
            if ( !empty( 
    $old_vars['orderby'] ) )
               
    $vars['orderby'] = $old_vars['orderby'];
            if ( !empty( 
    $old_vars['order'] ) )
               
    $vars['order'] = $old_vars['order'];
         }
      }
      return 
    $vars;
    });
    Tiếp theo vào wp-admin/options-permalink.php của website để đổi lại như hình dưới, thêm dấu . vào chuyên mục category product để nó xóa đi nhé.

    remove-slug-category-product.jpg
    Cách 2:

    Bạn cài plugin sau vô để xóa và chỉnh sửa vô tư nhé: https://wordpress.org/plugins/woo-permalink-manager/
     
    seolagi thích bài này.
  3. seolagi
    Tham gia ngày:
    16/4/14
    Bài viết:
    1,030
    Đã được thích:
    81
    Điểm thành tích:
    48
    EM cảm ơn, em đã làm được như ad hướng dẫn