…для реализации подобного ранее, использовался плагин Speculative Loading (Спекулятивная загрузка – или проще и понятнее: Предварительной загрузка), однако, стартуя от версии 6.8 cms внедрена в WordPress Core по умолчанию. Так называемая спекулятивная загрузка, общий логический смысл которой в организации условий для более, скажем так, быстрой загрузки страниц (url адресов).
Спекулятивная загрузка WordPress, отрабатывает примерно следующим образом: вся штука, в предварительном просмотре URL-адресов на страницах WordPress (т.е. обработке сервером/браузером заранее – до перехода пользователя по link!), срабатывает в тот момент, когда клиент (пользователь) наводит курсор мышки на определенную ссылку в документе.
Таким образом все URL-адреса на странице предварительно, что важно в смысле ускорения, обрабатываются с помощью eagerness и конфигурации настроек moderate как правило, в момент попадания курсора на ссылку: т.е. как бы загружаются браузером клиента БЕЗ перехода на страницу! ну и ясно, что в случае посещения страницы, она открывается быстрее)…
…стартуя от WordPress 6.8, данный функционал присутствует в cms по умолчанию:
сквозная мораль: URL-адрес загружается предварительно (или, лучше сказать, обрабатывается сервером) до того как пользователь решает перейти по ссылке! По сути не требует никаких настроек! API правил используется с начала2023 года.
фильтр render_block_core_navigation_link_allowed_post_status
WordPress 6.8 спекулятивная загрузка – на примере функции wp_speculation_rules_href_exclude_paths
Исключения: если url адрес имеет некие параметры запроса, например, get
, то такие “ссылки” исключаются из отработки предварительной визуализации – это, скажем так, в идеале.
исключаем url из спекулятивной загрузки фильтром
Функция wp_speculation_rules_href_exclude_paths – это шаблон (фильтр) для исключения требуемых адресов, пример ниже:
add_filter(
'wp_speculation_rules_href_exclude_paths',
function ( $href_exclude_paths ) {
$href_exclude_paths[] = '/cart/*';
return $href_exclude_paths;
}
);
Фильтр обеспечит запрет спекулятивной загрузки ДЛЯ URL-адреса, который стартует путем /cart/
(после доменного имени), т.е. будут исключены из “быстрой” загрузки, причем независимо от prefetch
или же prerender
:
Обратите внимание на /cart/*
– “звездочка” это условия запрета для всех иных вариаций ссылки после cart
, кои исключаются!..
Еще один пример для исключения /personalized-area/
из prerender
спекулятивной загрузки:
add_filter(
'wp_speculation_rules_href_exclude_paths',
function ( $href_exclude_paths, $mode ) {
if ( 'prerender' === $mode ) {
$href_exclude_paths[] = '/personalized-area/*';
}
return $href_exclude_paths;
},
10,
2
);
конфигурации wp_speculation_rules_configuration фильтра таковы:
получает либо ассоциативный массив с ключами mode
/ eagerness
, либо null
– отключение спекулятивной загрузки в текущем (указанном) запросе.
Для фильтра такие значения по умолчанию: array( 'mode' => 'auto', 'eagerness' => 'auto' ),
- в случае, если постоянные ссылки отключены, тогда отдается
null
. - значение auto (в любой настроечной конфигурации) определяет то, что WordPress Core будет определять конфигурацию самостоятельно. Правила API правила в следующих выпусках WordPress, скорее всего, будут меняться.
Фильтр для увеличения производительности (с использованием moderate
):
add_filter(
'wp_speculation_rules_configuration',
function ( $config ) {
if ( is_array( $config ) ) {
$config['eagerness'] = 'moderate';
}
return $config;
}
);
- значение
mode
либоauto, prefetch
, либоprerender
; - eagerness –
auto, conservative, moderate
, либоeager
…
API правила WP наряду с показанными выше, имеют значение immediate
, однако же его ОЧЕНЬ не рекомендуется использовать!! API ядра WordPress не позволяет с ним работать, а всякие там костыльные обходы – чреваты! Будьте осторожны!
Например, для более пущего повышения производительности (в функционале упомянутого выше плагина Speculative Loading), использовался фильтр с prerender
и moderate
.
Но, несмотря на то, что возможно добиться значительного прироста производительности, следует иметь в виду настройки предварительной визуализации JavaScript клиентского браузера, перед тем, как решите включить prerende
add_filter(
'wp_speculation_rules_configuration',
function ( $config ) {
if ( is_array( $config ) ) {
$config['mode'] = 'prerender';
$config['eagerness'] = 'moderate';
}
return $config;
}
);
отслеживать данные отработки спекулятивной загрузки в браузере Chrome возможно примерно так:

Инструментарий разработчика Chrome DevTools позволяет получить информацию об обработке ссылок сайта: к примеру, варианты предварительной отрисовке страниц
К примеру, в разделе “Сеть” выведены данные о том, является ли запрашиваемая страница “предварительно отображенной”, или же без предварительной отрисовки.
варианты административных настроек
Если на сайте не в полной мере отрабатывают “Постоянные ссылки”, URL-адреса с теми или иными определенными параметрами запроса, возможно включить “в спекулятивную загрузку” средствами фильтра:
add_filter(
'wp_speculation_rules_configuration',
function ( $config ) {
if ( ! $config && ! get_option( 'permalink_structure' ) ) {
$config = array(
'mode' => 'auto',
'eagerness' => 'auto',
);
}
return $config;
}
);
Данные выше настройки конфигурации загрузки следует использовать осторожно !!!! Напоминаю: данный функционал теперь по умолчанию WordPress Core и нормально отрабатывает что называется “без вмешательств”, обеспечивая безопасность сайтов.
А потому показанный последним выше код логичен и хорош только в том случае, если вы уверены в своих действиях (понимаете, что делаете, но не банально копируете и добавляете в файлы functions шаблона).
Подробнее можно почитать здесь: спекулятивная загрузка Core api
На этом моя повесть нынче решительно окончена...!