63 lines
1.4 KiB
PHP
63 lines
1.4 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* WPSEO plugin file.
|
||
|
*
|
||
|
* @package WPSEO\Internals
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Class that generates interesting statistics about things.
|
||
|
*/
|
||
|
class WPSEO_Statistics {
|
||
|
|
||
|
/**
|
||
|
* Returns the post count for a certain SEO rank.
|
||
|
*
|
||
|
* @todo Merge/DRY this with the logic virtually the same in WPSEO_Metabox::column_sort_orderby().
|
||
|
*
|
||
|
* @param WPSEO_Rank $rank The SEO rank to get the post count for.
|
||
|
*
|
||
|
* @return int
|
||
|
*/
|
||
|
public function get_post_count( $rank ) {
|
||
|
if ( $rank->get_rank() === WPSEO_Rank::NO_FOCUS ) {
|
||
|
$posts = [
|
||
|
'meta_query' => [
|
||
|
'relation' => 'OR',
|
||
|
[
|
||
|
'key' => WPSEO_Meta::$meta_prefix . 'focuskw',
|
||
|
'value' => 'needs-a-value-anyway',
|
||
|
'compare' => 'NOT EXISTS',
|
||
|
],
|
||
|
],
|
||
|
];
|
||
|
}
|
||
|
elseif ( $rank->get_rank() === WPSEO_Rank::NO_INDEX ) {
|
||
|
$posts = [
|
||
|
'meta_key' => WPSEO_Meta::$meta_prefix . 'meta-robots-noindex',
|
||
|
'meta_value' => '1',
|
||
|
'compare' => '=',
|
||
|
];
|
||
|
}
|
||
|
else {
|
||
|
$posts = [
|
||
|
'meta_key' => WPSEO_Meta::$meta_prefix . 'linkdex',
|
||
|
'meta_value' => [ $rank->get_starting_score(), $rank->get_end_score() ],
|
||
|
'meta_compare' => 'BETWEEN',
|
||
|
'meta_type' => 'NUMERIC',
|
||
|
];
|
||
|
}
|
||
|
|
||
|
$posts['fields'] = 'ids';
|
||
|
$posts['post_status'] = 'publish';
|
||
|
|
||
|
if ( current_user_can( 'edit_others_posts' ) === false ) {
|
||
|
$posts['author'] = get_current_user_id();
|
||
|
}
|
||
|
|
||
|
$posts = new WP_Query( $posts );
|
||
|
|
||
|
return (int) $posts->found_posts;
|
||
|
}
|
||
|
}
|