A WordPress-centric search engine for devs and theme authors



wp_media_personal_data_exporter ›

Since4.9.6
Deprecatedn/a
wp_media_personal_data_exporter ( $email_address, $page = 1 )
Parameters: (2)
  • (string) $email_address The attachment owner email address.
    Required: Yes
  • (int) $page Attachment page.
    Required: No
    Default: 1
Returns:
  • (array) $return An array of personal data.
Defined at:
Codex:

Finds and exports attachments associated with an email address.



Source

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,
	);
}