Custom field for CMB2 which adds a post-search dialog for searching/attaching other post IDs.
Adds a new text field type (with a button), post_search_text that adds a quick post search dialog for saving post IDs to a text input.
// Classic CMB2 declaration
$cmb = new_cmb2_box( array(
'id' => 'prefix-metabox-id',
'title' => __( 'Post Info' ),
'object_types' => array( 'post', ), // Post type
) );
// Add new field
$cmb->add_field( array(
'name' => __( 'Related post' ),
'id' => 'prefix_related_post',
'type' => 'post_search_text', // This field type
// post type also as array
'post_type' => 'post',
// Default is 'checkbox', used in the modal view to select the post type
'select_type' => 'radio',
// Will replace any selection with selection from modal. Default is 'add'
'select_behavior' => 'replace',
// To display the title of the attached post instead of the just the ID
'after' => 'cmb2_attached_post_name',
) );
function cmb2_attached_post_name( $field_args, $field ) {
if ( $field->value ) {
$post_title = get_the_title($field->value);
echo '<p>Post attached: <strong>' . $post_title . '</strong></p>';
} else {
echo '<p>please attach a post</p>';
}
}If you're looking for a more general way to attach posts (or other custom post types) with a drag and drop interface, you might consider CMB2 Attached Posts Field instead.

