wp_media_personal_data_exporter

The timeline below displays how wordpress function wp_media_personal_data_exporter has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.4

/**
 * Finds and exports attachments associated with an email address.
 *
 * @since 4.9.6
 *
 * @param string $email_address The attachment owner email address.
 * @param int    $page          Attachment page number.
 * @return array {
 *     An array of personal data.
 *
 *     @type array[] $data An array of personal data arrays.
 *     @type bool    $done Whether the exporter is finished.
 * }
 */
function wp_media_personal_data_exporter($email_address, $page = 1)
{
    // Limit us to 50 attachments at a time to avoid timing out.
    $number = 50;
    $page = (int) $page;
    $data_to_export = array();
    $user = get_user_by('email', $email_address);
    if (false === $user) {
        return array('data' => $data_to_export, 'done' => true);
    }
    $post_query = new WP_Query(array('author' => $user->ID, 'posts_per_page' => $number, 'paged' => $page, 'post_type' => 'attachment', 'post_status' => 'any', 'orderby' => 'ID', 'order' => 'ASC'));
    foreach ((array) $post_query->posts as $post) {
        $attachment_url = wp_get_attachment_url($post->ID);
        if ($attachment_url) {
            $post_data_to_export = array(array('name' => __('URL'), 'value' => $attachment_url));
            $data_to_export[] = array('group_id' => 'media', 'group_label' => __('Media'), 'group_description' => __('User’s media data.'), 'item_id' => "post-{$post->ID}", 'data' => $post_data_to_export);
        }
    }
    $done = $post_query->max_num_pages <= $page;
    return array('data' => $data_to_export, 'done' => $done);
}

WordPress Version: 5.5

/**
 * Finds and exports attachments associated with an email address.
 *
 * @since 4.9.6
 *
 * @param string $email_address The attachment owner email address.
 * @param int    $page          Attachment page.
 * @return array An array of personal data.
 */
function wp_media_personal_data_exporter($email_address, $page = 1)
{
    // Limit us to 50 attachments at a time to avoid timing out.
    $number = 50;
    $page = (int) $page;
    $data_to_export = array();
    $user = get_user_by('email', $email_address);
    if (false === $user) {
        return array('data' => $data_to_export, 'done' => true);
    }
    $post_query = new WP_Query(array('author' => $user->ID, 'posts_per_page' => $number, 'paged' => $page, 'post_type' => 'attachment', 'post_status' => 'any', 'orderby' => 'ID', 'order' => 'ASC'));
    foreach ((array) $post_query->posts as $post) {
        $attachment_url = wp_get_attachment_url($post->ID);
        if ($attachment_url) {
            $post_data_to_export = array(array('name' => __('URL'), 'value' => $attachment_url));
            $data_to_export[] = array('group_id' => 'media', 'group_label' => __('Media'), 'group_description' => __('User&#8217;s media data.'), 'item_id' => "post-{$post->ID}", 'data' => $post_data_to_export);
        }
    }
    $done = $post_query->max_num_pages <= $page;
    return array('data' => $data_to_export, 'done' => $done);
}

WordPress Version: 5.3

/**
 * Finds and exports attachments associated with an email address.
 *
 * @since 4.9.6
 *
 * @param  string $email_address The attachment owner email address.
 * @param  int    $page          Attachment page.
 * @return array  $return        An array of personal data.
 */
function wp_media_personal_data_exporter($email_address, $page = 1)
{
    // Limit us to 50 attachments at a time to avoid timing out.
    $number = 50;
    $page = (int) $page;
    $data_to_export = array();
    $user = get_user_by('email', $email_address);
    if (false === $user) {
        return array('data' => $data_to_export, 'done' => true);
    }
    $post_query = new WP_Query(array('author' => $user->ID, 'posts_per_page' => $number, 'paged' => $page, 'post_type' => 'attachment', 'post_status' => 'any', 'orderby' => 'ID', 'order' => 'ASC'));
    foreach ((array) $post_query->posts as $post) {
        $attachment_url = wp_get_attachment_url($post->ID);
        if ($attachment_url) {
            $post_data_to_export = array(array('name' => __('URL'), 'value' => $attachment_url));
            $data_to_export[] = array('group_id' => 'media', 'group_label' => __('Media'), 'group_description' => __('User&#8217;s media data.'), 'item_id' => "post-{$post->ID}", 'data' => $post_data_to_export);
        }
    }
    $done = $post_query->max_num_pages <= $page;
    return array('data' => $data_to_export, 'done' => $done);
}

WordPress Version: .10

/**
 * Finds and exports attachments associated with an email address.
 *
 * @since 4.9.6
 *
 * @param  string $email_address The attachment owner email address.
 * @param  int    $page          Attachment page.
 * @return array  $return        An array of personal data.
 */
function wp_media_personal_data_exporter($email_address, $page = 1)
{
    // Limit us to 50 attachments at a time to avoid timing out.
    $number = 50;
    $page = (int) $page;
    $data_to_export = array();
    $user = get_user_by('email', $email_address);
    if (false === $user) {
        return array('data' => $data_to_export, 'done' => true);
    }
    $post_query = new WP_Query(array('author' => $user->ID, 'posts_per_page' => $number, 'paged' => $page, 'post_type' => 'attachment', 'post_status' => 'any', 'orderby' => 'ID', 'order' => 'ASC'));
    foreach ((array) $post_query->posts as $post) {
        $attachment_url = wp_get_attachment_url($post->ID);
        if ($attachment_url) {
            $post_data_to_export = array(array('name' => __('URL'), 'value' => $attachment_url));
            $data_to_export[] = array('group_id' => 'media', 'group_label' => __('Media'), 'item_id' => "post-{$post->ID}", 'data' => $post_data_to_export);
        }
    }
    $done = $post_query->max_num_pages <= $page;
    return array('data' => $data_to_export, 'done' => $done);
}