add wp-rocket
This commit is contained in:
31
wp-content/plugins/wp-rocket/inc/API/bypass.php
Normal file
31
wp-content/plugins/wp-rocket/inc/API/bypass.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
defined( 'ABSPATH' ) || exit;
|
||||
|
||||
/**
|
||||
* Indicate to bypass rocket optimizations.
|
||||
*
|
||||
* Checks for "nowprocket" query string in the url to bypass rocket processes.
|
||||
*
|
||||
* @since 3.7
|
||||
*
|
||||
* @return bool True to indicate should bypass; false otherwise.
|
||||
*/
|
||||
function rocket_bypass() {
|
||||
global $wp;
|
||||
|
||||
static $bypass = null;
|
||||
|
||||
if ( rocket_get_constant( 'WP_ROCKET_IS_TESTING', false ) ) {
|
||||
$bypass = null;
|
||||
}
|
||||
|
||||
if ( ! is_null( $bypass ) ) {
|
||||
return $bypass;
|
||||
}
|
||||
|
||||
$url = wp_parse_url( add_query_arg( $wp->query_vars, home_url( $wp->request ) ) );
|
||||
$bypass = isset( $url['query'] ) && false !== strpos( $url['query'], 'nowprocket' );
|
||||
|
||||
return $bypass;
|
||||
}
|
112
wp-content/plugins/wp-rocket/inc/API/preload.php
Normal file
112
wp-content/plugins/wp-rocket/inc/API/preload.php
Normal file
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
defined( 'ABSPATH' ) || exit;
|
||||
|
||||
use WP_Rocket\Engine\Preload\FullProcess;
|
||||
use WP_Rocket\Engine\Preload\Homepage;
|
||||
use WP_Rocket\Engine\Preload\Sitemap;
|
||||
|
||||
/**
|
||||
* Launches the Homepage preload (helper function for backward compatibility)
|
||||
*
|
||||
* @since 2.6.4 Don't preload localhost & .dev domains
|
||||
* @since 1.0
|
||||
*
|
||||
* @param string $spider (default: 'cache-preload') The spider name: cache-preload or cache-json.
|
||||
* @param string $lang (default: '') The language code to preload.
|
||||
* @return false
|
||||
*/
|
||||
function run_rocket_bot( $spider = 'cache-preload', $lang = '' ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals
|
||||
if ( ! get_rocket_option( 'manual_preload' ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$urls = [];
|
||||
|
||||
if ( ! $lang ) {
|
||||
$urls = get_rocket_i18n_uri();
|
||||
} else {
|
||||
$urls[] = get_rocket_i18n_home_url( $lang );
|
||||
}
|
||||
|
||||
$homepage_preload = new Homepage( new FullProcess() );
|
||||
|
||||
$homepage_preload->preload( $urls );
|
||||
}
|
||||
|
||||
/**
|
||||
* Launches the sitemap preload (helper function for backward compatibility)
|
||||
*
|
||||
* @since 2.8
|
||||
* @author Remy Perona
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function run_rocket_sitemap_preload() { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals
|
||||
if ( ! get_rocket_option( 'sitemap_preload' ) || ! get_rocket_option( 'manual_preload' ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters the sitemaps list to preload
|
||||
*
|
||||
* @since 2.8
|
||||
*
|
||||
* @param array Array of sitemaps URL
|
||||
*/
|
||||
$sitemaps = apply_filters( 'rocket_sitemap_preload_list', get_rocket_option( 'sitemaps', false ) );
|
||||
$sitemaps = array_flip( array_flip( $sitemaps ) );
|
||||
|
||||
if ( ! $sitemaps ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$sitemap_preload = new Sitemap( new FullProcess() );
|
||||
|
||||
$sitemap_preload->run_preload( $sitemaps );
|
||||
}
|
||||
|
||||
/**
|
||||
* Launches the preload cache from the admin bar or the dashboard button
|
||||
*
|
||||
* @since 1.3.0 Compatibility with WPML
|
||||
* @since 1.0 (delete in 1.1.6 and re-add in 1.1.9)
|
||||
* @deprecated 3.2
|
||||
*/
|
||||
function do_admin_post_rocket_preload_cache() { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals
|
||||
if ( empty( $_GET['_wpnonce'] ) ) {
|
||||
wp_safe_redirect( wp_get_referer() );
|
||||
die();
|
||||
}
|
||||
|
||||
if ( ! wp_verify_nonce( sanitize_key( $_GET['_wpnonce'] ), 'preload' ) ) {
|
||||
wp_nonce_ays( '' );
|
||||
}
|
||||
|
||||
if ( ! current_user_can( 'rocket_preload_cache' ) ) {
|
||||
wp_safe_redirect( wp_get_referer() );
|
||||
die();
|
||||
}
|
||||
|
||||
$preload_process = new FullProcess();
|
||||
|
||||
if ( $preload_process->is_process_running() ) {
|
||||
wp_safe_redirect( wp_get_referer() );
|
||||
die();
|
||||
}
|
||||
|
||||
delete_transient( 'rocket_preload_errors' );
|
||||
|
||||
$lang = isset( $_GET['lang'] ) && 'all' !== $_GET['lang'] ? sanitize_key( $_GET['lang'] ) : '';
|
||||
run_rocket_bot( 'cache-preload', $lang );
|
||||
run_rocket_sitemap_preload();
|
||||
|
||||
if ( ! strpos( wp_get_referer(), 'wprocket' ) ) {
|
||||
set_transient( 'rocket_preload_triggered', 1 );
|
||||
}
|
||||
|
||||
wp_safe_redirect( wp_get_referer() );
|
||||
die();
|
||||
}
|
||||
add_action( 'admin_post_nopriv_preload', 'do_admin_post_rocket_preload_cache' );
|
||||
add_action( 'admin_post_preload', 'do_admin_post_rocket_preload_cache' );
|
Reference in New Issue
Block a user