The following code will display a count of the number of media in every user’s Media Gallery, as shown below:
Once the code is added, you can also include the show_count="true"
attribute in the rtMedia Gallery Shortcode to display media count in galleries created via shortcode:
[rtmedia_gallery global="true" show_count="true"]
Paste the following code into your functions.php file:
/**
* Add filter to modify media query.
*/
function my_rtmedia_set_query_filters() {
add_filter( 'rtmedia_media_query', 'my_modify_media_query', 9, 3 );
}
add_action( 'rtmedia_set_query', 'my_rtmedia_set_query_filters', 99 );
/**
* Modifies the media query.
*
* @param array $media_query Refer the `rtmedia_media_query` filter defined in the rtMedia plugin
* @param array $action_query
* @param array $query
*
* @return array $media_query
*/
function my_modify_media_query( $media_query, $action_query, $query ) {
global $rtmedia_query, $media_query_clone_ids;
// Store the `media_name` parameter to be used in the rtmedia-model-where-query filter
$media_query_clone_ids = $media_query;
if ( isset( $media_query['show_count'] ) ) {
if ( ! empty( $media_query['show_count'] ) ) {
// unset from global query so that multiple gallery shortcode can work
if ( isset( $rtmedia_query->query ) && isset( $rtmedia_query->query['show_count'] ) ) {
unset( $rtmedia_query->query['show_count'] );
}
}
// unset it, so that it wont affect the other rtmedia_gallery shortcodes on the same page
unset( $media_query['show_count'] );
}
return $media_query;
}
/**
* Show media count in rtMedia gallery shortcode when show_count parameter is set to true.
*/
function rtmedia_gallery_after_title_add_media_count() {
global $rtmedia_query;
// Check for gallery shortcode.
if ( isset( $rtmedia_query->is_gallery_shortcode ) && true === $rtmedia_query->is_gallery_shortcode ) {
global $rtmedia_shortcode_attr;
// check in the gallery shortcode $show_count is set to true.
if ( isset( $rtmedia_shortcode_attr['show_count'] ) && 'true' === (string) $rtmedia_shortcode_attr['show_count'] ) {
// Defalut value for media count.
$media_count = 0;
if ( isset( $rtmedia_query->is_gallery_shortcode ) ) {
// get value from the pagination.
$media_count = intval( $rtmedia_query->media_count );
}
?>
<h2 class="rtm-gallery-count">
<?php
$total_text = esc_html__( 'Total media:', 'buddypress-media' );
// Filter for the counter text.
echo apply_filters( 'rtmedia_total_counter_text', $total_text );
echo sprintf( ' %d ', intval( $media_count ) );
?>
</h2>
<?php
}
}
}
add_action( 'rtmedia_album_gallery_actions', 'rtmedia_gallery_after_title_add_media_count', 10 );
add_action( 'rtmedia_media_gallery_shortcode_actions', 'rtmedia_gallery_after_title_add_media_count', 99 );
You must be logged in to post a comment.