จะเพิ่ม Custom Taxonomy ใน Permalink ของ WordPress Custom Post Type (CPT) ได้อย่างไร?
เผยแพร่แล้ว: 2020-02-08ใน Crunchify เราได้เผยแพร่บทความจำนวนหนึ่งเกี่ยวกับ WordPress Custom Post Type หนึ่งในบทช่วยสอนยอดนิยมคือวิธีสร้าง WordPress Custom Post Type (CPT) และ Taxonomy
ในบทช่วยสอนนี้ เราจะพูดถึงขั้นตอนในการเพิ่มอนุกรมวิธานที่กำหนดเองในลิงก์ถาวรประเภทโพสต์ที่กำหนดเอง
ขั้นตอนที่ 1. เรากำลังพยายามอะไร
หากคุณมีอนุกรมวิธานแบบกำหนดเองที่เรียกว่า tourist
และประเภทโพสต์แบบกำหนดเองที่เรียกว่า attraction
สำหรับสถานที่ท่องเที่ยว ถ้าฉันอยากได้โครงสร้างลิงก์ถาวร จะเป็นอย่างไร: crunchify.com/<tourist_name>/<attraction_name>
คุณมาถูกที่แล้ว
ขั้นตอนที่ 2.
โปรดใช้โค้ดประเภทโพสต์ที่กำหนดเองด้านล่างใน functions.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
// ================================= 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 ) ; |

ขั้นตอนที่ 3
โปรดใช้รหัสการจัดหมวดหมู่แบบกำหนดเองด้านล่างใน functions.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// ================================= 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' ) ; |
ขั้นตอนที่ 4
สำหรับ Attraction Post Type Single Link ให้เพิ่ม Category Slug
1 2 3 4 5 6 7 8 9 10 11 |
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 ) ; |
คุณจะเริ่มเห็นเมนูแผงด้านซ้ายของ WordPress อื่นหลังจากนั้น
แจ้งให้เราทราบหากคุณประสบปัญหาใด ๆ กับรหัสนี้ บล็อกที่มีความสุข
ดูบทความรายละเอียดอื่นเกี่ยวกับประเภทโพสต์ที่กำหนดเอง
วิธีสร้าง WordPress Custom Post Type (CPT) และอนุกรมวิธาน – Hello World Tutorial, Tips and Tricks