Откуда берутся фавиконки для медиафайлов

29 сент. 2015 г., 19:31:28
Просмотры: 14.5K
Голосов: 5

Я загрузил несколько PDF-файлов в Медиабиблиотеку.

Не могу найти способ установить фавикон для PDF-файлов в браузере.

Откуда WordPress берет фавикон?

Есть ли возможность управлять фавиконом для PDF-файлов в медиабиблиотеке?

11
Комментарии

У PDF-файла не должно быть фавикона, так как фавикон обычно предназначен для всего сайта. Если вы имеете в виду что-то другое, пожалуйста, уточните.

Mark Kaplun Mark Kaplun
29 сент. 2015 г. 19:36:39

Ах, но в Google Chrome он есть. Пояснение: "фавикон" — это графическое изображение размером 16x16 пикселей, которое отображается во вкладке браузера.

tammy tammy
29 сент. 2015 г. 19:52:28

Итак, если вы создаёте HTML-страницу и размещаете PDF на сервере без WordPress, что нужно сделать, чтобы задать для PDF определённый фавикон, отличающийся от фавикона сайта?

Mark Kaplun Mark Kaplun
29 сент. 2015 г. 20:12:06

Давайте попробуем так, @MarkKaplun. (1) Войдите на страницу по ссылке http://bit.ly/1FATyb2 (вам нужно будет согласиться с условиями во всплывающем окне — не беспокойтесь, это только запишет куки на ваш компьютер, которые можно потом очистить). (2) Визуально проверьте фавикон страницы. (3) Кликните на любой из трёх PDF-документов. (4) Обратите внимание на новый фавикон. Вопрос: откуда WordPress или браузер взял этот фавикон?

tammy tammy
29 сент. 2015 г. 20:20:17

Я вижу фавикон сайта, и вам даже не нужно ничего делать, так как управление им является частью версии 4.3.

Mark Kaplun Mark Kaplun
29 сент. 2015 г. 21:06:30

Это как раз то, что мне нужно. Можешь объяснить, как это сделать в 4.3, @MarkKaplun? У меня стоит 4.3.1.

tammy tammy
29 сент. 2015 г. 21:18:03

это "значок сайта" в разделе "идентификация сайта" в кастомайзере

Mark Kaplun Mark Kaplun
29 сент. 2015 г. 21:36:16

Я надеялся, что это будет решением, @MarkKaplun, но это не сработало в качестве базовой favicon для медиафайлов PDF.

tammy tammy
29 сент. 2015 г. 22:43:30

Тогда это баг браузера, или то, что вы запрашиваете, не соответствует стандартам. favicon.ico — это старый хак, который работал для старого простого веба, но он больше не подходит, так как структура сайтов стала сложнее, а доступ к файлам на сервере более ограничен. Стандартная замена требует отдачи HTML-страницы, которая указывает в метаданных, какое изображение использовать в качестве favicon (именно это делает версия 4.3). Проблема, конечно, в том, что PDF — это не HTML, и поэтому нет способа указать favicon конкретно для одного PDF-файла.

Mark Kaplun Mark Kaplun
30 сент. 2015 г. 06:08:07

Просто загрузите ваш favicon.ico в корневую папку сайта. Затем обновите страницу .pdf или очистите все кеши. Только что проверил на WordPress 5.4 - работает отлично. :)

Би Джи Ар Груп ООД Би Джи Ар Груп ООД
7 апр. 2020 г. 14:55:04

Если у вас возникает конфликт между favicon вашего сайта на WP и favicon в папке загрузок, убедитесь, что в корневой директории не остался старый favicon.ico, в то время как новый был добавлен через админку WordPress. Только что столкнулся с этим на одном сайте.

Christopher Christopher
3 июл. 2017 г. 19:39:29
Показать остальные 6 комментариев
Все ответы на вопрос 2
8

Думаю, вам достаточно изменить файл favicon.ico в корневой директории WordPress.

Предыдущий ответ:

Полагаю, вы хотите изменить эту иконку (/wp-includes/images/media/document.png):

иконка

которая отображается для PDF-документов в Медиатеке.

Вы можете использовать фильтр wp_mime_type_icon для изменения иконки:

add_filter( 'wp_mime_type_icon', function( $icon, $mime, $post_id )
{
    // Если это PDF и есть ID поста
    if( 'application/pdf' === $mime && $post_id > 0 )
        $icon = 'http://example.tld/pdf.png'; // Измените путь по необходимости!

    return $icon;
}, 10, 3 ); 

Что касается фавиконов, вы можете ознакомиться с моим ответом здесь.

29 сент. 2015 г. 20:21:39
Комментарии

Нет, это не фавикон, который отображается в браузере у меня, @birgire. Смотри мой последний комментарий MarkKaplun выше.

tammy tammy
29 сент. 2015 г. 20:32:50

Я только что обновил ответ после прочтения твоего комментария, пожалуйста, добавь всю соответствующую информацию в сам вопрос, спасибо @tammy

birgire birgire
29 сент. 2015 г. 20:33:49

А, хороший совет @birgire, я проверю это и отпишусь.

tammy tammy
29 сент. 2015 г. 20:34:05

Да, похоже, что так и происходит. Вы не знаете, есть ли какой-то "умный" способ переопределить это? Дело в том, что сайт, который показывает "неправильную" желаемую favicon, — это только один сайт среди многих в мультисайтовых сетях, которые я администрирую. Поэтому я не хочу изменять базовую favicon. Мне просто нужно установить favicon для этого конкретного сайта в MS-сети. Это возможно, @birgire?

tammy tammy
29 сент. 2015 г. 20:38:54

Интересно, можно ли попробовать переписать запросы к favicon.ico (через nginx или apache) для этих конкретных сайтов? @tammy

birgire birgire
29 сент. 2015 г. 20:43:06

Да, наверное. Я сейчас как раз изучаю WP-плагины, потому что уверен, что кто-то уже решил эту аномалию с помощью плагина. Спасибо за помощь.

tammy tammy
29 сент. 2015 г. 20:44:16

Для переопределения этого для простых запросов файлов (например, jpg, png, pdf, ...) я думаю, что это можно сделать только на уровне nginx/apache. Так что, я полагаю, подобные плагины для WordPress, если они существуют, будут генерировать для вас фрагменты nginx.conf/.htaccess. => Не думаю, что существует чисто PHP решение для этого. @tammy

birgire birgire
29 сент. 2015 г. 20:50:20

установка favicon на самом деле является функцией версии 4.3 и должна работать на всех типах серверов

Mark Kaplun Mark Kaplun
29 сент. 2015 г. 21:07:33
Показать остальные 3 комментариев
0

Подводя итоги обсуждения в комментариях, ответ на заданный вопрос заключается в том, что это невозможно. Современные веб-стандарты не предусматривают возможности объявления фавикона для PDF-файлов, только для всего домена через файл favicon.ico.

Можно попробовать обойти это ограничение следующими способами:

  1. Установить файл favicon.ico в корне сайта с изображением, которое вы хотите ассоциировать с медиафайлами, и использовать функцию "Иконка сайта" в WordPress 4.3 для управления иконкой HTML (которая должна иметь приоритет над favicon.ico).

  2. Размещать медиафайлы на другом домене (например, поддомене основного сайта) и установить там favicon.ico, который вы хотите ассоциировать с медиафайлами.

30 сент. 2015 г. 06:19:20