/** * 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 a dashboard widget label to use for a certain rank * * @param WPSEO_Rank $rank The rank to return a label for. * * @return string */ private function get_title_for_rank(WPSEO_Rank $rank) { $labels = array(WPSEO_Rank::NO_FOCUS => __('Posts without focus keyword', 'wordpress-seo'), WPSEO_Rank::BAD => __('Posts with bad SEO score', 'wordpress-seo'), WPSEO_Rank::OK => __('Posts with OK SEO score', 'wordpress-seo'), WPSEO_Rank::GOOD => __('Posts with good SEO score', 'wordpress-seo'), WPSEO_Rank::NO_INDEX => sprintf(__('Posts that are set to %s', 'wordpress-seo'), '<code>noindex</code>')); return $labels[$rank->get_rank()]; }