WordPressカスタム投稿タイプ(CPT)パーマリンクにカスタム分類法を追加するにはどうすればよいですか?
公開: 2020-02-08Crunchifyでは、WordPressカスタム投稿タイプに関する多数の記事を公開しています。 非常に人気のあるチュートリアルの1つは、WordPressカスタム投稿タイプ(CPT)と分類法を作成する方法についてです。
このチュートリアルでは、カスタム投稿タイプのパーマリンクにカスタム分類法を追加する方法について説明します。
ステップ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。
アトラクションポストタイプシングルリンクの場合、カテゴリスラッグを追加します。
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カスタム投稿タイプ(CPT)と分類法を作成する方法– Hello Worldチュートリアル、ヒントとコツ