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.
64 lines
1.4 KiB
PHTML
64 lines
1.4 KiB
PHTML
8 months ago
|
<?php
|
||
|
/**
|
||
|
* Pro AMP support.
|
||
|
*
|
||
|
* @since 1.0
|
||
|
* @package RankMathPro
|
||
|
* @subpackage RankMathPro\Admin
|
||
|
* @author Rank Math <support@rankmath.com>
|
||
|
*/
|
||
|
|
||
|
namespace RankMathPro\Admin;
|
||
|
|
||
|
use RankMath\Helper;
|
||
|
use RankMath\Traits\Hooker;
|
||
|
use RankMath\Redirections\DB;
|
||
|
use RankMath\Redirections\Redirection;
|
||
|
|
||
|
defined( 'ABSPATH' ) || exit;
|
||
|
|
||
|
/**
|
||
|
* Amp tool class.
|
||
|
*
|
||
|
* @codeCoverageIgnore
|
||
|
*/
|
||
|
class Amp {
|
||
|
|
||
|
use Hooker;
|
||
|
|
||
|
/**
|
||
|
* Register hooks.
|
||
|
*/
|
||
|
public function __construct() {
|
||
|
if ( Helper::get_settings( 'general.redirections_post_redirect' ) ) {
|
||
|
$this->action( 'rank_math/redirection/post_updated', 'add_amp_redirect', 20 );
|
||
|
$this->action( 'rank_math/redirection/term_updated', 'add_amp_redirect', 20 );
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Add /amp redirection based on the original redirection.
|
||
|
*
|
||
|
* @param int $redirection_id Redirection ID.
|
||
|
* @return void
|
||
|
*/
|
||
|
public function add_amp_redirect( $redirection_id ) {
|
||
|
$db_redirection = DB::get_redirection_by_id( $redirection_id );
|
||
|
|
||
|
$url_to = trailingslashit( $db_redirection['url_to'] ) . 'amp/';
|
||
|
$redirection = Redirection::from(
|
||
|
[
|
||
|
'url_to' => $url_to,
|
||
|
'header_code' => $db_redirection['header_code'],
|
||
|
]
|
||
|
);
|
||
|
|
||
|
$redirection->set_nocache( true );
|
||
|
$redirection->add_source( trailingslashit( $db_redirection['sources'][0]['pattern'] ) . 'amp/', 'exact' );
|
||
|
$redirection->add_destination( $url_to );
|
||
|
$redirection->save();
|
||
|
}
|
||
|
|
||
|
}
|