Last Updated: February 25, 2016
·
987
· yoren

Select post parent from another post type in WordPress

add_action('admin_menu', function() {
    remove_meta_box('pageparentdiv', 'chapter', 'normal');
});
add_action('add_meta_boxes', function() {
    add_meta_box('chapter-parent', 'Part', 'chapter_attributes_meta_box', 'chapter', 'side', 'high');
});

function chapter_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' => 'part', '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.
}

The snippet above is kinda of my inspiration to create Completely Delete. Last year a client project need to cross reference 2 different post types. When I do some research on Google, a post from My Musings describe how to change the parent select options to posts from another post type. This is quite useful and a time saver for me.