
This is a little something that’ll help you see activity across a multisite. It adds a column to the admin view that shows the posts/pages count for each site.
I found this plugin that got me the foundation for adding the column and then was able to just use the switch_blog function to get me a count of published posts and pages. Do note that it doesn’t count drafts.1
This column in conjunction with the already existing last updated column should give you a good idea when a site has been abandoned or was never really started.
We could get fancier down the road and do some sort of math to take the last updated date, published posts/pages counts, and any other stuff we want and build a score to rate the likelihood that the site is abandoned.
// Hook to columns on network sites listing
add_filter( 'wpmu_blogs_columns', 'rampages_blogs_columns' );
/**
* To add a columns to the sites columns
*
* @param array
*
* @return array
*/
function rampages_blogs_columns($sites_columns)
{
//array_slice ( array $array , int $offset [, int|null $length = NULL [, bool $preserve_keys = FALSE ]] ) : array
$columns_1 = array_slice( $sites_columns, 1, 2 );//decide where to put the column in the existing columns
$columns_2 = array_slice( $sites_columns, 2 );
$sites_columns = $columns_1 + array( 'content' => 'Posts/Pages' ) + $columns_2;//title
return $sites_columns;
}
function sort_rampages_sites_custom_column(){
$columns['content'] = 'Posts/Pages'; //title it
return $columns;
}
// Hook to manage column data on network sites listing
add_action( 'manage_sites_custom_column', 'rampages_sites_custom_column', 10, 2 );
/**
* Show page post count
*
* @param string
* @param integer
*
* @return void
*/
function rampages_sites_custom_column($column_name, $blog_id)
{
if ( $column_name == 'content' ) {
switch_to_blog($blog_id);//not aware of a function that'll do this based on blog ID so we switch instead
$pages = wp_count_posts('page','publish')->publish;
$posts = wp_count_posts('post', 'publish')->publish;
restore_current_blog();
if ($posts < 1){
$posts = 0;
}
if ($pages < 1){
$pages = 0;
}
echo $posts . '/' . $pages ;
}
}
1 I feel like I have more drafts than posts on this site so maybe I need to reconsider that.