Аналогично ответу Вика, но вместо регулярного выражения используется str_replace.
script_loader_src
и style_loader_src
те крючки, которые вы хотите.
<?php
add_filter( 'script_loader_src', 'wpse47206_src' );
add_filter( 'style_loader_src', 'wpse47206_src' );
function wpse47206_src( $url )
{
if( is_admin() ) return $url;
return str_replace( site_url(), '', $url );
}
Вы также можете запустить сценарий / стиль URL с двойной косой чертой //
(« ссылка на сетевой путь »). Что может быть безопаснее (?): Все еще имеет полный путь, но использует схему / протокол текущей страницы.
<?php
add_filter( 'script_loader_src', 'wpse47206_src' );
add_filter( 'style_loader_src', 'wpse47206_src' );
function wpse47206_src( $url )
{
if( is_admin() ) return $url;
// why pass by reference on count? last arg
return str_replace( array( 'http:', 'https:' ), '', $url, $c=1 );
}
wp search-replace 'http://mydomain.tld' 'https://mydomain.tld'
Да, я думаю, что это возможно. Смотрите на крючок фильтра
script_loader_src
; там получите строку, и вы можете отфильтровать это для ваших требований.То же самое возможно для таблиц стилей, загружаемых через
wp_enqueue_style
фильтрstyle_loader_src
.источник
Другой способ, который я думаю , что я получил от корней тему, может быть, немного гетто , но имеет некоторые умные обработки о том, когда использовать относительные URL (тестировался только на Дев сайте). Преимущество заключается в том, что его можно использовать в качестве фильтра для многих других встроенных URL-адресов, используемых WordPress. В этом примере показаны только фильтр стиля и сценария постановки в очередь.
источник