Friday, 31 January 2025

Add meta boxes for Video url and text multiple in wordpress using code

 
function business_add_custom_metaboxes() {

    add_meta_box(

        'business_video_url',

        'Video',

        'business_video_url_callback',

        'business',

        'normal',

        'high'

    );
}

add_action('add_meta_boxes', 'business_add_custom_metaboxes');


function business_video_url_callback($post) {

    $videos = get_post_meta($post->ID, 'business_video_urls', true);

    if (!is_array($videos)) {

        $videos = []; // Ensure $videos is an array

    }

  echo '<div id="business-video-container">';

    foreach ($videos as $video) {

        echo '<input type="text" name="business_video_urls[]" value="' . esc_attr($video) . '" style="width:100%; margin-bottom:10px;" />';

    }

    echo '</div>';

    

    echo '<button type="button" id="add-video-url">Add Video URL</button>';

    

    echo '<script>

        document.getElementById("add-video-url").addEventListener("click", function() {

            var container = document.getElementById("business-video-container");

            var input = document.createElement("input");

            input.type = "text";

            input.name = "business_video_urls[]";

            input.style = "width:100%; margin-bottom:10px;";

            container.appendChild(input);

        });

    </script>';

}


function business_save_metaboxes($post_id) {

    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;

    if (!current_user_can('edit_post', $post_id)) return;


    if (isset($_POST['business_video_urls'])) {

        $video_urls = array_map('esc_url_raw', array_filter($_POST['business_video_urls']));

        update_post_meta($post_id, 'business_video_urls', $video_urls);

    }

}
add_action('save_post', 'business_save_metaboxes');