Skip to content

Commit

Permalink
Merge pull request #6 from lordealeister/feature/post-types
Browse files Browse the repository at this point in the history
Fix to count all post types
  • Loading branch information
lordealeister authored Nov 10, 2021
2 parents 61f26a9 + ae29f22 commit e11ccc6
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 48 deletions.
126 changes: 80 additions & 46 deletions app/Controllers/Admin/Posts.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,55 +7,89 @@
Class Posts {

public function __construct() {
add_filter('manage_posts_columns', array($this, 'columnHead'));
add_filter('manage_posts_custom_column', array($this, 'columnContent'), 10, 2);
add_filter('manage_edit-post_sortable_columns', array($this, 'columnSort'));
add_filter('request', array($this, 'columnOrderby'));
}

/**
* columnHead
*
* @param array $columns
* @return array
*/
function columnHead(array $columns): array {
$columns[App::$domain . '_views'] = __('Views', App::$domain);

return $columns;
}

/**
* columnContent
*
* @param string $columnName
* @param int $postID
* @return void
*/
function columnContent(string $columnName, int $postID): void {
if($columnName !== App::$domain . '_views')
return;
add_filter('manage_posts_columns', array($this, 'columnHead'));
add_filter('manage_posts_custom_column', array($this, 'columnContent'), 10, 2);
add_filter('request', array($this, 'columnOrderby'));
add_action('current_screen', array($this, 'currentScreen'));
}

/**
* currentScreen
*
* @return void
*/
function currentScreen(): void {
$screen = get_current_screen();

echo get_post_views($postID);
}
if(!empty($screen->post_type))
add_filter("manage_edit-{$screen->post_type}_sortable_columns", array($this, 'columnSort'));
}

/**
* columnHead
*
* @param array $columns
* @return array
*/
function columnHead(array $columns): array {
$columns[App::$domain . '_views'] = __('Views', App::$domain);

return $columns;
}

/**
* columnContent
*
* @param string $columnName
* @param int $postID
* @return void
*/
function columnContent(string $columnName, int $postID): void {
if($columnName !== App::$domain . '_views')
return;

function columnSort($columns) {
$columns[App::$domain . '_views'] = App::$domain . '_views';
echo get_post_views($postID);
}

/**
* columnSort
*
* @param mixed $columns
* @return array
*/
function columnSort(array $columns): array {
$columns[App::$domain . '_views'] = App::$domain . '_views';

return $columns;
}
return $columns;
}

/**
* columnOrderby
*
* @param array $vars
* @return array
*/
function columnOrderby(array $vars): array {
if(!is_admin())
return $vars;

function columnOrderby($vars) {
if(!is_admin())
return $vars;

if(!isset($vars['orderby']) || (isset($vars['orderby']) && App::$domain . '_views' == $vars['orderby'])):
$vars['meta_key'] = 'views_count';
$vars['meta_type'] = 'NUMERIC';
$vars['orderby'] = 'meta_value_num';
endif;
if(!isset($vars['orderby']) || (isset($vars['orderby']) && App::$domain . '_views' == $vars['orderby'])):
$vars['meta_type'] = 'NUMERIC';
$vars['orderby'] = 'meta_value';
$vars['meta_query'] = array(
'relation' => 'OR',
array(
'key' => 'views_count',
'compare' => 'NOT EXISTS'
),
array(
'key' => 'views_count',
'compare' => 'EXISTS'
)
);
endif;

return $vars;
}
return $vars;
}

}
}
4 changes: 2 additions & 2 deletions app/Controllers/Single.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ function trackViews(int $post_id = 0): void {
if(wp_doing_ajax()):
$post_id = $_POST['id'];
else:
if(!is_singular('post'))
if(!is_single())
return;

if(empty($post_id))
Expand Down Expand Up @@ -64,4 +64,4 @@ function enqueueAssets(): void {
);
}

}
}

0 comments on commit e11ccc6

Please sign in to comment.