You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
2.1 KiB
PHP
99 lines
2.1 KiB
PHP
<?php
|
|
/**
|
|
* The SEO Analyzer module.
|
|
*
|
|
* @since 0.9.0
|
|
* @package RankMath
|
|
* @subpackage RankMath\SEO_Analysis
|
|
* @author Rank Math <support@rankmath.com>
|
|
*/
|
|
|
|
namespace RankMath\SEO_Analysis;
|
|
|
|
use RankMath\Helper;
|
|
use RankMath\Traits\Hooker;
|
|
use RankMath\Helpers\Param;
|
|
|
|
defined( 'ABSPATH' ) || exit;
|
|
|
|
/**
|
|
* SEO_Analysis class.
|
|
*/
|
|
class SEO_Analysis {
|
|
|
|
use Hooker;
|
|
|
|
/**
|
|
* Admin object.
|
|
*
|
|
* @var Admin
|
|
*/
|
|
public $admin;
|
|
|
|
/**
|
|
* The Constructor.
|
|
*/
|
|
public function __construct() {
|
|
if ( Helper::is_heartbeat() ) {
|
|
return;
|
|
}
|
|
|
|
if ( is_admin() ) {
|
|
$this->admin = new Admin();
|
|
}
|
|
|
|
if ( Helper::has_cap( 'rank_math_site_analysis' ) ) {
|
|
$this->action( 'rank_math/admin_bar/items', 'admin_bar_items', 11 );
|
|
}
|
|
|
|
$this->filter( 'rank_math/seo_analysis/admin_tab_view', 'add_tab_previews', 10, 2 );
|
|
}
|
|
|
|
/**
|
|
* Add admin bar item.
|
|
*
|
|
* @param Admin_Bar_Menu $menu Menu class instance.
|
|
*/
|
|
public function admin_bar_items( $menu ) {
|
|
$menu->add_sub_menu(
|
|
'seo-analysis',
|
|
[
|
|
'title' => esc_html__( 'SEO Analyzer', 'rank-math' ),
|
|
'href' => Helper::get_admin_url( 'seo-analysis' ),
|
|
'meta' => [ 'title' => esc_html__( 'Site-wide analysis', 'rank-math' ) ],
|
|
'priority' => 50,
|
|
]
|
|
);
|
|
|
|
if ( ! is_admin() && ! is_404() ) {
|
|
$link = is_front_page() ? '' : ( is_ssl() ? 'https' : 'http' ) . '://' . Param::server( 'HTTP_HOST' ) . Param::server( 'REQUEST_URI' );
|
|
|
|
$menu->add_sub_menu(
|
|
'analyze',
|
|
[
|
|
'title' => $link ? esc_html__( 'Analyze this Page', 'rank-math' ) : esc_html__( 'SEO Analyzer', 'rank-math' ),
|
|
'href' => Helper::get_admin_url( 'seo-analysis' ) . ( $link ? '&u=' . rawurlencode( $link ) : '' ),
|
|
'meta' => [ 'title' => esc_html__( 'SEO Analysis for this page', 'rank-math' ) ],
|
|
],
|
|
'seo-analysis'
|
|
);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Add PRO tab previews.
|
|
*
|
|
* @param string $file Include file.
|
|
* @param string $current_tab Current tab.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function add_tab_previews( $file, $current_tab ) {
|
|
if ( 'competitor_analyzer' === $current_tab ) {
|
|
$file = dirname( __FILE__ ) . '/views/competitor-analysis.php';
|
|
}
|
|
|
|
return $file;
|
|
}
|
|
}
|