Or, embed this snippet using GenerateWP WordPress Plugin.

Download

Clone

custom metabox for post

<?php
add_action( 'add_meta_boxes', 'so_custom_meta_box' );

function so_custom_meta_box($post){
    add_meta_box('so_meta_box', 'Custom Box', 'custom_element_grid_class_meta_box', 'post', 'side' , 'high');
}

add_action('save_post', 'so_save_metabox');

function so_save_metabox(){
    global $post;
    if(isset($_POST["post_1"])){
        //UPDATE:
        $meta_element_class = $_POST['post_1'];
        //END OF UPDATE

        update_post_meta($post->ID, 'post_1', $meta_element_class);
        //print_r($_POST);
    }
    if(isset($_POST["post_2"])){
        //UPDATE:
        $meta_element_class = $_POST['post_2'];
        //END OF UPDATE

        update_post_meta($post->ID, 'post_2', $meta_element_class);
        //print_r($_POST);
    }
}

function custom_element_grid_class_meta_box($post){
    $meta_element_class = get_post_meta($post->ID, 'custom_element_grid_class_meta_box', true); //true ensures you get just one value instead of an array
    $posts_loop = new WP_Query(
        array(
            'posts_per_page' => -1,
            'cat' => get_the_category()[0]->cat_ID
        )); ?>
    <?php $post_meta = get_post_meta($post->ID) ?>
    <?php print_r($post_meta['post_1'][0]); ?>
     <pre><?php print_r(get_post_meta(get_the_ID())); ?> </pre>
    <select id= "post_1" name="post_1">
        <option value=""> <?php echo __('בחר', 'bestvision'); ?></option>
        <?php if($posts_loop->have_posts()) : ?>
            <?php while($posts_loop->have_posts()) : $posts_loop->the_post(); ?>
                <option value="<?php echo get_the_ID(); ?>" <?php if ( $post_meta['post_1'][0] == get_the_ID() ) echo 'selected="selected"'; ?> > <?php  echo get_the_title(); ?> </option>
            <?php endwhile; ?>
        <?php endif; ?>
    </select>
    <select id= "post_2" name="post_2">
        <option value=""> <?php echo __('בחר', 'bestvision'); ?></option>
        <?php if($posts_loop->have_posts()) : ?>
            <?php while($posts_loop->have_posts()) : $posts_loop->the_post(); ?>
                <option value="<?php echo get_the_ID(); ?>" <?php if ( $post_meta['post_2'][0] == get_the_ID() ) echo 'selected="selected"'; ?> > <?php  echo get_the_title(); ?> </option>
            <?php endwhile; ?>
        <?php endif; ?>
    </select>
    <?php wp_reset_query(); ?>
    

    <?php
}