How-to-add-custom-taxonomy-in-custom-post-type-permalink-Crunchify-Tips (2)

Thêm phân loại tuỳ chỉnh perlink thêm cho wordpress (CPT)

Đây là hình ảnh ví dụ về kết quả nếu hoàn thành:

Cách làm:

Đây là một đoạn cấu trúc perlink mà chúng ta sẽ hướng tới: exdomain.com/<tourist_name>/<attraction_name>

Các bạn sẽ tuỳ chỉnh trong  functions.php:

// ================================= Create Attraction Custom Post Type =================================
function crunchify_create_the_attaction_posttype() {
$labels = array(
‘name’ => _x( ‘Attraction’, ‘Post Type General Name’, ‘CRUNCHIFY_TEXT_DOMAIN’ ),
‘singular_name’ => _x( ‘Attraction’, ‘Post Type Singular Name’, ‘CRUNCHIFY_TEXT_DOMAIN’ ),
‘menu_name’ => esc_html__( ‘Attraction’, ‘CRUNCHIFY_TEXT_DOMAIN’ ),
‘parent_item_colon’ => esc_html__( ‘Parent Attraction’, ‘CRUNCHIFY_TEXT_DOMAIN’ ),
‘all_items’ => esc_html__( ‘All Attraction’, ‘CRUNCHIFY_TEXT_DOMAIN’ ),
‘view_item’ => esc_html__( ‘View Attraction’, ‘CRUNCHIFY_TEXT_DOMAIN’ ),
‘add_new_item’ => esc_html__( ‘Add New Attraction’, ‘CRUNCHIFY_TEXT_DOMAIN’ ),
‘add_new’ => esc_html__( ‘Add New’, ‘CRUNCHIFY_TEXT_DOMAIN’ ),
‘edit_item’ => esc_html__( ‘Edit Attraction’, ‘CRUNCHIFY_TEXT_DOMAIN’ ),
‘update_item’ => esc_html__( ‘Update Attraction’, ‘CRUNCHIFY_TEXT_DOMAIN’ ),
‘search_items’ => esc_html__( ‘Search Attraction’, ‘CRUNCHIFY_TEXT_DOMAIN’ ),
‘not_found’ => esc_html__( ‘Not Found’, ‘CRUNCHIFY_TEXT_DOMAIN’ ),
‘not_found_in_trash’ => esc_html__( ‘Not found in Trash’, ‘CRUNCHIFY_TEXT_DOMAIN’ ),
);
$args = array(
‘label’ => esc_html__( ‘attraction’, ‘CRUNCHIFY_TEXT_DOMAIN’ ),
‘description’ => esc_html__( ‘Attraction’, ‘CRUNCHIFY_TEXT_DOMAIN’ ),
‘labels’ => $labels,
‘supports’ => array( ‘title’,’editor’,’thumbnail’),
‘taxonomies’ => array( ‘genres’ ),

‘hierarchical’ => false,
‘public’ => true,
‘show_ui’ => true,
‘show_in_menu’ => true,
‘show_in_nav_menus’ => true,
‘show_in_admin_bar’ => true,
‘menu_position’ => 100,
‘can_export’ => true,
‘has_archive’ => __( ‘attraction’ ),
‘exclude_from_search’ => false,
‘publicly_queryable’ => true,
‘query_var’ => true,
‘show_admin_column’ => true,
‘capability_type’ => ‘post’,
‘rewrite’ => array(‘slug’ => ‘attraction/%tourist%’),
);
register_post_type( ‘attraction’, $args );
}
add_action( ‘init’, ‘crunchify_create_the_attaction_posttype’, 0 );

Tuỳ chỉnh tiếp trong file; functions.php:

// ================================= Custom Post Type Taxonomies =================================
function crunchify_create_the_attaction_taxonomy() {
register_taxonomy(
‘tourist’, // This is a name of the taxonomy. Make sure it’s not a capital letter and no space in between
‘attraction’, //post type name
array(
‘hierarchical’ => true,
‘label’ => ‘Attractions’, //Display name
‘query_var’ => true,
‘has_archive’ => true,
‘rewrite’ => array(‘slug’ => ‘attraction’)
)
);
}
add_action( ‘init’, ‘crunchify_create_the_attaction_taxonomy’);

Đối với các bài đăng – thì các bạn thêm slug Category danh mục

function crunchify_create_post_link( $post_link, $id = 0 ){
$post = get_post($id);
if ( is_object( $post ) ){
$terms = wp_get_object_terms( $post->ID, ‘tourist’ );
if( $terms ){
return str_replace( ‘%tourist%’ , $terms[0]->slug , $post_link );
}
}
return $post_link;
}
add_filter( ‘post_type_link’, ‘crunchify_create_post_link’, 1, 3 );

OK như vậy là đã xong – Bạn sẽ bắt đầu thấy một menu bảng điều khiển bên trái WordPress khác sau đó. Ở đây bạn có thể tuỳ chỉnh thêm: