ฉันเพิ่งตั้งค่าความสัมพันธ์ระหว่างโพสต์ / ผู้ปกครองระหว่างประเภทโพสต์ "ตอน" และโพสต์ "การ์ตูนซีรีส์"
ฉันใช้โค้ดนี้เพื่อเพิ่มในกล่องเมตาเพื่อกำหนดพาเรนต์จากประเภทโพสต์อื่น:
add_action('admin_menu', function() {
    remove_meta_box('pageparentdiv', 'episodes', 'normal');
});
add_action('add_meta_boxes', function() {
    add_meta_box('episodes-parent', 'Cartoon Series', 'episodes_attributes_meta_box', 'episodes', 'side', 'default');
});
function episodes_attributes_meta_box($post) {
    $post_type_object = get_post_type_object($post->post_type);
    if ( $post_type_object->hierarchical ) {
        $pages = wp_dropdown_pages(array('post_type' => 'cartoon-series', 'selected' => $post->post_parent, 'name' => 'parent_id', 'show_option_none' => __('(no parent)'), 'sort_column'=> 'menu_order, post_title', 'echo' => 0));
        if ( ! empty($pages) ) {
            echo $pages;
        } // end empty pages check
    } // end hierarchical check.
}ที่ทำงานบนหน้าจอผู้ดูแลระบบในการอนุญาตให้ฉันตั้งชุดเป็นผู้ปกครองตอน แต่เมื่อฉันพยายามดูโพสต์ฉันได้รับ 404 โครงสร้าง url คือ:
domain/episodes/series-name/episode-nameURL สำหรับซีรีย์คือ:
domain/cartoon-series/series-nameฉันต้องการ URL สำหรับตอนนี้:
domain/cartoon-series/series-name/episode-nameฉันกำลังคิดถึงอะไร เป็นไปได้ไหมที่จะทำให้โพสต์ทั้งหมดเป็นลูกของโพสต์ประเภทอื่น? ดังนั้นฉันยังสามารถรับ url สำหรับรายการตอนได้:
domain/cartoon-series/series-name/episodesขอบคุณ! ด้าน
ตามที่ร้องขอนี่คือรหัสสำหรับประเภทโพสต์ที่กำหนดเองสองประเภทที่เป็นปัญหา:
$labels = array(
    "name" => "Cartoon Series",
    "singular_name" => "Cartoon Series",
    "menu_name" => "Cartoon Series",
    "all_items" => "All Cartoon Series",
    "add_new" => "Add New",
    "add_new_item" => "Add New Cartoon Series",
    "edit" => "Edit",
    "edit_item" => "Edit Cartoon Series",
    "new_item" => "New Cartoon Series",
    "view" => "View",
    "view_item" => "View Cartoon Series",
    "search_items" => "Search Cartoon Series",
    "not_found" => "No Cartoon Series Found",
    "not_found_in_trash" => "No Cartoon Series Found in Trash",
    "parent" => "Parent Cartoon Series",
    );
$args = array(
    "labels" => $labels,
    "description" => "",
    "public" => true,
    "show_ui" => true,
    "has_archive" => true,
    "show_in_menu" => true,
    "exclude_from_search" => false,
    "capability_type" => "post",
    "map_meta_cap" => true,
    "hierarchical" => true,
    "rewrite" => array( "slug" => "cartoon-series", "with_front" => true ),
    "query_var" => true,
    "supports" => array( "title", "revisions", "thumbnail" ),           );
register_post_type( "cartoon-series", $args );
$labels = array(
    "name" => "Episodes",
    "singular_name" => "Episode",
    );
$args = array(
    "labels" => $labels,
    "description" => "",
    "public" => true,
    "show_ui" => true,
    "has_archive" => true,
    "show_in_menu" => true,
    "exclude_from_search" => false,
    "capability_type" => "post",
    "map_meta_cap" => true,
    "hierarchical" => true,
    "rewrite" => array( "slug" => "episodes", "with_front" => true ),
    "query_var" => true,
    "supports" => array( "title", "revisions", "thumbnail" ),           );
register_post_type( "episodes", $args );ฉันใช้ปลั๊กอิน CPT UI ดังนั้นฉันจึงไม่สามารถแก้ไขรหัสนั้นโดยตรง นั่นเป็นเพียงรหัสการส่งออก CPT UI ที่มีให้
ฉันไม่มีรหัสอื่นที่เชื่อมโยง CPT สองรายการ บางทีนั่นอาจเป็นสิ่งที่ฉันขาดไป ฉันเพิ่งพบรหัสออนไลน์ที่วาง metabox บนหน้าเพื่อทำการเชื่อมโยง มันไม่เพียงพอที่จะทำงานหรือไม่ ดูเหมือนว่าจะตั้งค่า post_parent
ขอบคุณ! ด้าน
pre_get_postsขอแก้ไขแบบสอบถามโดยไม่ประสบความสำเร็จการทำให้ซับซ้อนมากขึ้นเกี่ยวข้องกับการที่ฉันไม่สามารถเข้าใจได้ เหมือนมีแมวเป็นตัวการของสุนัข ฉันขอแนะนำให้ใช้เพียงหนึ่งประเภทโพสต์ลำดับชั้นหรือตั้ง realtionship ใช้ช่องเมตา 
                
parent_idแบบสอบถาม var และไม่จำเป็นต้องใช้รหัสมากขึ้นเพื่อตั้งค่าความสัมพันธ์ ปัญหาคือว่า WordPress ไม่รู้จัก URL ที่สร้างขึ้น ฉันพยายามค้นหากฎการเขียนซ้ำที่ใช้งานได้ แต่ไม่ประสบความสำเร็จ ฉันกำลังตรวจสอบวิธีแก้ไขปัญหา