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.

104 lines
2.5 KiB
PHTML

<?php
/**
* The compatibility functionality for 3rd party plugins.
*
* @since 0.9.0
* @package RankMath
* @subpackage RankMath\Core
* @author Rank Math <support@rankmath.com>
*/
namespace RankMath;
use RankMath\Traits\Hooker;
use RankMath\Helpers\Str;
defined( 'ABSPATH' ) || exit;
/**
* Compatibility class.
*/
class Compatibility {
use Hooker;
/**
* The Constructor.
*/
public function __construct() {
if ( is_admin() ) {
if ( \defined( 'PIRATE_FORMS_VERSION' ) ) {
$this->action( 'admin_enqueue_scripts', 'pirate_forms_dequeue_scripts' );
}
}
$this->filter( 'rank_math/pre_simple_page_id', 'subscribe_to_comments_reloaded' );
$this->filter( 'genesis_detect_seo_plugins', 'disable_genesis_seo' );
}
/**
* Subscribe to comments reloaded page ID.
*
* @param int $page_id Change page id to real page.
* @return int
*/
public function subscribe_to_comments_reloaded( $page_id ) {
if ( is_plugin_active( 'subscribe-to-comments-reloaded/subscribe-to-comments-reloaded.php' ) ) {
$page_permalink = get_option( 'subscribe_reloaded_manager_page', '/comment-subscriptions/' );
if ( function_exists( 'qtrans_convertURL' ) ) {
$page_permalink = qtrans_convertURL( $page_permalink );
}
if ( ( strpos( $_SERVER['REQUEST_URI'], $page_permalink ) !== false ) ) {
$this->action( 'rank_math/head', 'subscribe_to_comments_reloaded_remove_robots', 1 );
return get_queried_object_id();
}
}
return $page_id;
}
/**
* Remove robots for this plugin.
*/
public function subscribe_to_comments_reloaded_remove_robots() {
remove_action( 'rank_math/frontend/robots', '__return_empty_array' );
}
/**
* Remove Pirate forms plugin scripts and styles from setting panels.
*/
public function pirate_forms_dequeue_scripts() {
if ( ! wp_script_is( 'pirate_forms_pro_admin_scripts' ) ) {
return;
}
$screen = get_current_screen();
if (
( ! Str::contains( 'rank-math', $screen->id ) && ! in_array( $screen->base, [ 'post', 'term', 'profile', 'user-edit' ], true ) ) ||
'pf_form' === $screen->id
) {
return;
}
wp_dequeue_script( 'pirate_forms_pro_admin_scripts' );
wp_dequeue_style( 'pirate_forms_pro_admin_styles' );
}
/**
* Disable Genesis SEO functionality.
*
* @param array $array Array hold disable info.
*
* @return array
*/
public function disable_genesis_seo( $array ) {
$array['classes'][] = '\RankMath\RankMath';
$array['functions'][] = 'rank_math';
return $array;
}
}