75 lines
1.6 KiB
PHP
75 lines
1.6 KiB
PHP
<?php
|
|
/**
|
|
* Admin Dashboard
|
|
*
|
|
* @package MASHSB
|
|
* @subpackage Admin/Dashboard
|
|
* @copyright Copyright (c) 2016, Rene Hermenau
|
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
|
* @since 3.0.0
|
|
*/
|
|
|
|
// Exit if accessed directly
|
|
if ( ! defined( 'ABSPATH' ) ) exit;
|
|
|
|
/**
|
|
* Add new columns in posts dashboard
|
|
*
|
|
* @return string
|
|
*/
|
|
function mashsb_create_share_columns($col) {
|
|
$col['mashsb_shares'] = 'Share Count';
|
|
return $col;
|
|
}
|
|
add_filter('manage_posts_columns', 'mashsb_create_share_columns');
|
|
|
|
/**
|
|
* Get share count in post columns
|
|
*
|
|
* @param array $col
|
|
* @param int $post_id
|
|
* @retrun int
|
|
*/
|
|
function mashsb_get_shares($col, $post_id) {
|
|
if ($col == 'mashsb_shares') {
|
|
$shares = get_post_meta($post_id,'mashsb_shares',true);
|
|
echo (int)$shares;
|
|
}
|
|
}
|
|
add_action('manage_posts_custom_column', 'mashsb_get_shares', 10, 2);
|
|
/**
|
|
* Make share count columns sortable
|
|
*
|
|
* @param array $col
|
|
* @return string
|
|
*/
|
|
// Make the column Sortable
|
|
function mashsb_share_column_sortable( $col ) {
|
|
$col['mashsb_shares'] = 'Share Count';
|
|
return $col;
|
|
}
|
|
add_filter('manage_edit-post_sortable_columns', 'mashsb_share_column_sortable');
|
|
|
|
|
|
/**
|
|
* Change columns get_posts() query
|
|
*
|
|
* @param type $query
|
|
* @return void
|
|
*/
|
|
function mashsb_sort_shares_by( $query ) {
|
|
if( ! is_admin() ){
|
|
return false;
|
|
}
|
|
|
|
$orderby = $query->get( 'orderby');
|
|
|
|
if( 'Share Count' == $orderby ) {
|
|
$query->set('meta_key','mashsb_shares');
|
|
$query->set('orderby','meta_value_num');
|
|
}
|
|
}
|
|
add_action( 'pre_get_posts', 'mashsb_sort_shares_by' );
|
|
|
|
|