Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // add custom column
- add_filter('manage_edit-post_columns', 'my_extra_views_column');
- function my_extra_views_column($columns) {
- $columns['views'] =__('views');
- return $columns;
- }
- // display the content of the custom column
- add_action( 'manage_post_posts_custom_column', 'my_cake_column_content', 10, 2 );
- function my_cake_column_content( $column_name, $post_id ) {
- if ( 'views' != $column_name )
- return;
- echo get_post_views($post_id);
- }
- // add 'views' column to the sortable columns array
- add_filter( 'manage_edit-post_sortable_columns', 'my_sortable_views_column' );
- function my_sortable_views_column( $columns ) {
- $columns['views'] = 'views';
- return $columns;
- }
- /* Filter The query
- *******************************************************************/
- // join new table
- add_filter('posts_join', 'my_views_table_join_filter');
- function my_views_table_join_filter($join) {
- global $wp_query, $wpdb;
- $orderby = $_GET['orderby'];
- if( ! is_admin() )
- return;
- if( 'views' == $orderby ) {
- $join .= "LEFT JOIN `post_views` ON $wpdb->posts.ID = post_views.post_ID ";
- }
- return $join;
- }
- // add custom field to the select clause
- add_filter('posts_fields', 'view_table_fields');
- function view_table_fields($fields){
- global $wp_query, $wpdb;
- $orderby = $_GET['orderby'];
- if( ! is_admin() )
- return;
- if( 'views' == $orderby ) {
- $fields .= ", " . "count(post_views.post_ID) AS views";
- }
- return ($fields);
- }
- // add custom groupby clause
- add_filter( 'posts_groupby', 'my_views_table_groupby_filter' );
- function my_views_table_groupby_filter($groupby) {
- global $wpdb;
- $orderby = $_GET['orderby'];
- if( ! is_admin() )
- return;
- if( 'views' == $orderby ) {
- $groupby = "{$wpdb->posts}.ID";
- }
- return $groupby;
- }
- // add custom order clause
- add_filter( 'posts_orderby', 'my_views_table_orderby_filter' );
- function my_views_table_orderby_filter($orderby_statement) {
- $orderby = $_GET['orderby'];
- if( ! is_admin() )
- return;
- if( 'views' == $orderby ) {
- $orderby_statement = "views $_GET[order]";
- }
- return $orderby_statement;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement