WordPress WPCLI - Count Media Library by Types
<?php | |
/** | |
* Implements `media-count` command. | |
*/ | |
class WPCLI_Media_Library_Count { | |
/** | |
* Get total count of all media and break down counts for each media type. | |
* | |
* ## EXAMPLES | |
* | |
* wp media-count | |
* | |
* @when after_wp_load | |
*/ | |
function __invoke() { | |
global $wpdb; | |
$total = 0; | |
$types = $wpdb->get_results( "SELECT DISTINCT post_mime_type FROM $wpdb->posts" ); | |
if ( ! $types ) { | |
WP_CLI::error( "Unable to find any post_mime_types" ); | |
} | |
foreach ( $types as $k => $type ) { | |
if ( empty( $type->post_mime_type ) ) { | |
continue; | |
} | |
$count = (int) $wpdb->get_var( $wpdb->prepare( " | |
SELECT COUNT(*) | |
FROM $wpdb->posts | |
WHERE post_type = 'attachment' | |
AND post_mime_type = '%s' | |
", $type->post_mime_type ) ); | |
WP_CLI::line( $count . " - " . $type->post_mime_type ); | |
$total += $count; | |
} | |
WP_CLI::success( "Total Media Counted: " . $total ); | |
} | |
} | |
WP_CLI::add_command( 'media-count', 'WPCLI_Media_Library_Count' ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment