Как остановить W3 Total Cache от глобальной замены URL в Wordpress
Я пытаюсь создать кастом wp_head
реализация в теме Wordpress для работы вместе с оригинальным методом.
Я настроил свой код, как это в functions.php
:
function wp_head_r()
{
echo '<script src="http://sample-url.com/js/file.js"></script>';
}
Тогда в header.php у меня есть это:
wp_head(); //original
wp_head_r();
У меня проблема в том, что в установленной мной Wordpress установлен W3 Total Cache. Так что происходит, что любой файл, который имеет sample-url.com
который ссылается на файл JavaScript или CSS заменяется на sample-url-cdn.com
прежде чем он выводится на страницу.
Это происходило с сценариями и таблицами стилей в очереди, и я подумал, что настройка пользовательских wp_head
Метод предотвратит это, но это не так.
Можно ли создать какой-то фильтр, чтобы предотвратить глобальный замещение всех URL в W3 Total Cache?
1 ответ
Мне удалось это выяснить. Хитрость заключается в том, чтобы использовать фильтр с высоким приоритетом, эффективно перекрывающий [я думаю] тот, который использует W3 Total Cache.
Вот код [для functions.php]:
function my_filter_w3tc_cdn_url( $new_url, $url, $is_engine_mirror )
{
if(preg_match('/\/(my_special_dir_pattern)/i', $new_url))
{
$new_url = $url;
}
return $new_url;
};
add_filter( 'w3tc_cdn_url', 'my_filter_w3tc_cdn_url', 100, 3 );
я использовал preg_match
нацелить все URL-адреса, которые соответствуют определенному шаблону, а затем исключить их из обновления до URL-адреса CDN. Также обратите внимание, что я использовал приоритет 100, который кажется достаточно высоким и работал в моем конкретном случае использования.
Надеюсь, поможет.