Intereting Posts
Загрузка актива с помощью gulp.js или Grunt Лучшее решение для управления вложениями мультимедиа с помощью `wp_editor ()`? Как скрыть get_theme_mod, если пустое поле Пользовательская форма WordPress + PHP + MYSQL + AJAX, отправьте событие, не записанное Javascript, но данные POST в базу данных Пользовательская кнопка tinymce apply_filters ('the_content') – заставить игнорировать короткие коды? Почему is_page не работает, когда я помещаю его в файл functions.php? Использование перезаписи URL для добавления настраиваемого URL для настраиваемого типа сообщения Как потреблять и отображать внешние данные в WordPress с другого веб-сайта Как получить ярлыки из сообщения Как контролировать порядок сочетания статичных стилей и скриптов – проблема скорости сайта Ajax на странице настроек (update_option не определено) Даты meta_query из массива get_previous_post работает не так, как ожидалось Различать сообщения и страницы в результатах поиска

Внедрение предварительной выборки DNS с помощью WordPress

Я не уверен, что мой вопрос звучит многообещающе или нет, но то, что я собираюсь задать, очень актуально. Поэтому, пожалуйста, прочитайте полный вопрос перед голосованием или флагом.

Я пытаюсь внедрить DNS Pre-fetching на моем wordpress mu, как сайт по сайту. На моем основном сайте я использую дочернюю тему, поэтому я решил поместить следующий код в function.php чтобы получить то, что я ищу.

 function dns_prefetch() { echo '<link rel="dns-prefetch" href="//cdn.mysite.com" />'; echo '<link rel="dns-prefetch" href="//fonts.googleapis.com" />' } add_action('wp_head', 'dns_prefetch'); 

Теперь, как работают функции wordpress и функции hook, он помещает этот код в раздел <head> сгенерированного html, где wp_head() был вызван в теме (родительском или дочернем) header.php

Но в соответствии с лучшей практикой кодирования Google лучше всего поместить код предварительной предварительной кодировки DNS. В соответствии с Google лучше использовать его, как

 <html> <head> <link rel="dns-prefetch" href="//cdn.mysite.com" /> <link rel="dns-prefetch" href="//fonts.googleapis.com" /> <!-- rest of my the code --> </head> 

Но я понятия не имею, как это сделать, потому что вся тема помещает код сначала в header.php перед вызовом wp-head .

Итак, мой вопрос, есть ли способ разместить эти коды предварительной загрузки dns сразу после запуска <head> ? Пожалуйста помоги.

Начиная с WordPress 4.6.0 существует API-интерфейс подсказок ресурсов, который автоматически добавляет все уникальные оконечные домены, которые вы можете переопределить с помощью wp_resource_hints – вы должны использовать только следующий ответ, если вы застряли с <4.6.0


Все, что вы можете сделать, это повысить приоритет вашего крючка:

 add_action( 'wp_head', 'dns_prefetch', 0 /* Highest priority */ ); 

но делает ли это мой код сразу после начала тега?

Нет, но он будет выводиться до любой другой функции, прикрепленной к wp_head то есть других <link /> , большинства таблиц стилей, скриптов плагинов и т. Д.

Чтобы правильно это сделать после <head> вам, скорее всего, нужно будет напрямую отредактировать header.php .

разве на самом деле нет другого пути?

Вы можете взломать его с помощью буферизации вывода:

 function wpse_177395_start_buffering( $template ) { ob_start(); return $template; } add_filter( 'template_include', 'wpse_177395_start_buffering' ); function wpse_177395_flush() { $content = ob_get_clean(); $content = preg_replace( '/<head[^>]*>/', '$0 <link rel="dns-prefetch" href="//cdn.mysite.com" /> <link rel="dns-prefetch" href="//fonts.googleapis.com" />', $content ); echo $content; } add_action( 'wp_head', 'wpse_177395_flush', 0 ); 

Просто маленькие самородки информации, которые могут помочь в простых настройках (особенно в тех, которые не используют плагины, использующие ob_start):

1) Вам не нужно использовать вызовы dns-prefetch в качестве первых элементов. Вам нужно как можно скорее поставить их перед тем, как любой другой элемент вызовет внешние ресурсы.

2) Фактически можно использовать отрицательные числа в качестве приоритета для add_action .

Поэтому можно использовать add_action( 'wp_head', 'dns_prefetch', -1 ); и почти гарантированно работает над простыми настройками.

Фактически, мы делаем это на https://clinicawp.2aces.com.br и надеемся, что это поможет вам, ребята.

У дочерней темы может быть свой собственный файл header.php, правильно? Итак, почему бы просто не просто удалить дочерний файл header.php в папку дочерней темы, а затем добавить туда код?

Если я что-то не хватает, это, кажется, самое простое решение.