Làm thế nào để hủy bỏ Slug từ Custom Post Type trong WordPress nếu không có Plugin?

Hôm nay trong bài viết này, chúng tôi sẽ hướng dẫn bạn làm thế nào để loại bỏ slug từ loại bài tùy chỉnh trong WordPress mà không cần plugin.

Làm thế nào để hủy bỏ Slug từ Custom Post Type trong WordPress nếu không có Plugin?

Tôi đã cố gắng để loại bỏ các slug từ loại bài tùy chỉnh bởi vì tôi muốn slug của tôi là ngắn hơn.Cách cũ để loại bỏ slug trong  tùy chỉnh của WordPress bằng cách sử dụng đoạn mã sau.

Hãy xem nó, bây giờ nó không còn hoạt động trong các phiên bản WordPress gần đây nhất sau 3.5 lần cài đặt.

  
'rewrite''    => array( 'slug' => true, 'with_front' => true),

Thay đổi dòng trên thành

rewrite'   => array( 'slug' => false, 'with_front' => false),

Nó có một vấn đề là nó sẽ mang lại xung đột nếu slug của bài tùy chỉnh loại và trang hoặc bài có thể trở thành giống nhau.

Vì vậy, những gì chúng tôi sẽ làm là đầu tiên loại bỏ các slug từ permalink bằng cách thêm đoạn mã duy nhất trong functions.php.

Hướng dẫn  hủy bỏ Slug từ Custom Post Type

function iz_remove_cpt_slug( $post_link, $post ) {
    if ( 'your_custom_posttype' === $post->post_type && 'publish' === $post->post_status ) {
        $post_link = str_replace( '/' . $post->post_type . '/', '/', $post_link );
    }
    return $post_link;
}
add_filter( 'post_type_link', 'iz_remove_cpt_slug', 10, 2 );

Và bây giờ nếu bạn truy cập vào trang, bạn sẽ nhận được Page Not Found Error  .

Bạn bình tĩnh còn nữa!

Để làm cho nó hoạt động, chúng ta cần thêm một số dòng mã để yêu cầu WordPress xử lý loại bài đăng tùy chỉnh như trang hoặc bài đăng. Để thực hiện điều này, hãy thêm các dòng mã này vào functions.php để làm cho nó hoạt động cho kiểu bài đăng tùy chỉnh.

function iz_add_cpt_post_names_to_main_query( $query ) {
    // Bail if this is not the main query.
    if ( ! $query->is_main_query() ) {
        return;
    }
    // Bail if this query doesn't match our very specific rewrite rule.
    if ( ! isset( $query->query['page'] ) || 2 !== count( $query->query ) ) {
        return;
    }
    // Bail if we're not querying based on the post name.
    if ( empty( $query->query['name'] ) ) {
        return;
    }
    // Add CPT to the list of post types WP will include when it queries based on the post name.
    $query->set( 'post_type', array( 'post', 'page', 'your_custom_posttype' ) );
}
add_action( 'pre_get_posts', 'iz_add_cpt_post_names_to_main_query' );

Bây giờ hãy vào Settings -> Permalinks và lưu thay đổi mà không thực hiện bất kỳ thay đổi nào khác trong phần Permalinks và bạn xem thử bài viết … nếu còn lỗi hãy liên hệ với chúng tôi giải quyết vấn đề này..

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

IZ4WEB.COM - Trang chia sẻ theme / Plugin WordPress từ themeforest chia sẻ hoàn toàn miễn phí link download được gắn đến Google Drive, nếu ko tìm thấy Plugin – Theme mong muốn vui lòng liên hệ qua Form hỗ trợ hoặc qua mail iz4webteams@gmail.com or 0964.555.805 để chúng tôi sẽ gửi cho bạn ngay phiên bản mới nhất qua thông tin nhận được.

Team có vài lưu ý:

  • Vì chia sẻ miễn phí các bạn đừng hỏi license, team vẫn hỗ trợ update
  • Cơ bản các theme đều import được demo, đọc kĩ tài liệu hướng dẫn của Theme
  • Team sẽ không cam kết chất lượng code Theme vì mình không phải người làm ra theme đấy
  • Nếu các bạn thấy theme có vấn đề vui lòng phản hồi lại Admin để update

Để anh/em có động lực làm việc mọi người có thể donate 1 phần nhỏ tiền trà thuốc để có động lực chiến đấu... Thay mặt Team chân thành cảm ơn!

Chủ TK: Lý Mạnh Hưng

Ngoài ra chúng tôi còn cung cấp các dịch vụ Thiết Kế Website, Cài đặt cấu hình website theo yêu cầu, Dịch vụ SEO, Design & Media, Dịch vụ quảng cáo...

0
Would love your thoughts, please comment.x
()
x