class-wpseo-statistics.php
3.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<?php
/**
* @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 ( WPSEO_Rank::NO_FOCUS === $rank->get_rank() ) {
$posts = array(
'meta_query' => array(
'relation' => 'OR',
array(
'key' => WPSEO_Meta::$meta_prefix . 'focuskw',
'value' => 'needs-a-value-anyway',
'compare' => 'NOT EXISTS',
)
),
);
}
elseif ( WPSEO_Rank::NO_INDEX === $rank->get_rank() ) {
$posts = array(
'meta_key' => WPSEO_Meta::$meta_prefix . 'meta-robots-noindex',
'meta_value' => '1',
'compare' => '=',
);
}
else {
$posts = array(
'meta_key' => WPSEO_Meta::$meta_prefix . 'linkdex',
'meta_value' => array( $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 $posts->found_posts;
}
/**
* Returns the amount of posts that have no focus keyword
*
* @deprecated
*
* @return int
*/
public function get_no_focus_post_count() {
_deprecated_function( 'get_no_focus_post_count', 'WPSEO 3.0', 'WPSEO_Statistics::get_post_count' );
return $this->get_post_count( new WPSEO_Rank( WPSEO_Rank::NO_FOCUS ) );
}
/**
* Returns the amount of posts that have a bad SEO ranking
*
* @deprecated
*
* @return int
*/
public function get_bad_seo_post_count() {
_deprecated_function( 'get_bad_seo_post_count', 'WPSEO 3.0', 'WPSEO_Statistics::get_post_count' );
return $this->get_post_count( new WPSEO_Rank( WPSEO_Rank::BAD ) );
}
/**
* Returns the amount of posts that have a poor SEO ranking
*
* @deprecated
*
* @return int
*/
public function get_poor_seo_post_count() {
_deprecated_function( 'get_poor_seo_post_count', 'WPSEO 3.0', 'WPSEO_Statistics::get_post_count' );
return $this->get_post_count( new WPSEO_Rank( 'poor' ) );
}
/**
* Returns the amount of posts that have an ok SEO ranking
*
* @deprecated
*
* @return int
*/
public function get_ok_seo_post_count() {
_deprecated_function( 'get_ok_seo_post_count', 'WPSEO 3.0', 'WPSEO_Statistics::get_post_count' );
return $this->get_post_count( new WPSEO_Rank( WPSEO_Rank::OK ) );
}
/**
* Returns the amount of posts that have a good SEO ranking
*
* @deprecated
*
* @return int
*/
public function get_good_seo_post_count() {
_deprecated_function( 'get_good_seo_post_count', 'WPSEO 3.0', 'WPSEO_Statistics::get_post_count' );
return $this->get_post_count( new WPSEO_Rank( WPSEO_Rank::GOOD ) );
}
/**
* Returns the amount of posts that have no SEO ranking
*
* @deprecated
*
* @return int
*/
public function get_no_index_post_count() {
_deprecated_function( 'get_no_index_post_count', 'WPSEO 3.0', 'WPSEO_Statistics::get_post_count' );
return $this->get_post_count( new WPSEO_Rank( WPSEO_Rank::NO_INDEX ) );
}
}