Вопрос или проблема
Библиотека медиафайлов не загружается в сеточном представлении, и изображение обложки не выбирает ни одно изображение из поста или страницы. Круг с прогрессом продолжает вращаться. Из-за этой проблемы я не могу добавить изображение в пост, так как опция вставки изображения также открывается по умолчанию в «сеточном представлении».
Вот что я пробовал, но это не решило мою проблему:
- Удалил все плагины. Переключился на тему двадцать шестнадцать.
- Удалил всю установку WordPress. Установил свежую.
- Включил отладку скриптов. В консоли не отображается никаких ошибок. Также пытался перезагрузить страницу.
Я не могу ничего делать на своём сайте уже много дней, пожалуйста, помогите мне.
Я столкнулся с аналогичной проблемой с теми же симптомами. Я определил, что в файле function.php моей темы была инструкция DEBUG, которая выводила какой-то HTML. Хотя это было нормально для просмотра, когда POST-запрос приходил в admin-ajax.php для обновления миниатюр, это вызывало бесконечное вращение колеса и не отображало изображения. Я удалил вывод из functions.php, и проблема была решена.
Не уверен, сработает ли это для вас, но я обнаружил проблему, используя следующую команду:
curl -X POST http://YOUR_DOMAIN_NAME_HERE/wp-admin/admin-ajax.php -d 'action=query-attachments&post_id=0&query[orderby]=date&query[order]=DESC&query[post_per_page]=40&query[paged]=1'
Добавление следующего кода в файл functions.php папки темы помогло мне.
add_action('admin_head', 'my_custom_style');
function my_custom_style()
{
echo '<style>
.media-frame.mode-grid .media-toolbar {
height: 60px !important;
}
</style>';
}
Это может быть проблема с тем, что Javascript не загружается должным образом в вашем WordPress бэкенде HEAD.
Вот код, встроенный в страницу Библиотеки медиафайлов, когда у меня была та же проблема, о которой говорил OP…
<p>Сеточное представление для Библиотеки медиафайлов требует JavaScript. <a href="upload.php?mode=list">Перейти в список</a>.</p>
Проверьте ваш файл “functions” на наличие функций, которые могут содержать код, который может мешать коду HEAD.
В моем случае я закомментировал функцию, которая загружала код Google Analytics в HEAD. Поскольку я не закомментировал код правильно, там были несколько PHP тегов, которые мешали загрузке Javascript в HEAD бэкенда WordPress…
// function add_gtag_to_head() {
// // Проверка является ли окружение промежуточным
// if ( strpos( get_bloginfo( 'url' ), '.test' ) !== false ) return;
// // Google Analytics
// $tracking_code="UA-*********-1";
// ?>
<!-- Глобальный тег сайта (gtag.js) - Google Analytics -->
<!-- <script async src="https://www.googletagmanager.com/gtag/js id=<?php // echo $tracking_code; ?>"></script> -->
<!-- <script> -->
<!-- window.dataLayer = window.dataLayer || []; -->
<!-- function gtag(){dataLayer.push(arguments);} -->
<!-- gtag('js', new Date());
<!-- gtag('config', '<?php // echo $tracking_code; ?>'); -->
<!-- </script> -->
<?php
// }
// add_action( 'wp_head', 'add_gtag_to_head' );
Я знаю, что эта тема старая, но я только что решил эту проблему, и, возможно, мое решение поможет другим. Я также не мог создать ни один пост. У моего сайта был рабочий список, но не было сеточного представления, и каждое загрузка фактически проходила, хотя функция загрузки показывала типичную ошибку (передача медиафайлов не удалась). Я смог увидеть все свои загрузки фотографий в /wp-content/uploads даже после ошибки библиотеки.
Я новичок в PHP и учусь писать свои собственные скрипты. Я написал скрипт, чтобы скрыть элементы меню/уведомления на административных страницах для моего клиента, и я использовал:
add_action('admin_init' , 'makeDashboardPretty');
чтобы связаться с административными страницами для этого. Это запустит мой скрипт до того, как что-либо на административной странице загрузится. Одним из элементов, который я скрыл, был элемент меню моей темы, который, похоже, должен загружаться, чтобы библиотека медиафайлов/публикация работали. Я думаю, что echo ''; ?>
css в моем скрипте помешал моей теме активировать функции библиотеки медиафайлов/публикации.
Я изменил свой административный хук на:
add_action('wp_after_admin_bar_render' , 'makeDashboardPretty');
что позволило моему скрипту инициализироваться после того, как элемент меню моей темы был загружен. Это позволило мне скрыть элемент и при этом заставить тему работать.
Я столкнулся с той же проблемой на своем сайте WordPress. После большого количества отладки я исправил свою проблему шаг за шагом.
- Сначала добавьте указанный ниже код в ваш db-config.php
define('SCRIPT_DEBUG', TRUE); define('WP_DEBUG', TRUE); define( 'WP_DEBUG_LOG', true );
- Затем перейдите в файлы /wp-includes/js/wp-util.js и найдите код $.ajax( options ) на строке номер 100 (в зависимости от вашей версии WordPress) и вставьте указанный ниже код в ваш файл
deferred.jqXHR = $.ajax( options ).done( function( response ) { try { response = JSON.parse(response); } catch (Exception) { response = response; }
Пожалуйста, проверьте, возможно, ваша проблема разрешится.
- если вы удалили константы из db-config.php
define('SCRIPT_DEBUG', TRUE); define('WP_DEBUG', TRUE); define( 'WP_DEBUG_LOG', true );
- Затем сожмите ваш файл /wp-includes/js/wp-util.js и поместите ваш сжатый код в /wp-includes/js/wp-util.min.js
У меня была такая же проблема несколько дней назад. Я попытался использовать функцию ob_start();
в начале файла function.php активной темы. И Библиотека медиафайлов загрузилась нормально.
Ответ или решение
Когда медиабиблиотека в админ-панели WordPress не загружается в режиме сетки, это может создавать значительные неудобства для управления контентом. В данном случае проблема заключается в том, что прогресс-центр продолжает вращаться, что мешает выбору изображений для публикаций. Давайте проанализируем проблему и возможные решения, учитывая предоставленные детали.
Возможные причины проблемы
-
Конфликт плагинов или тем: Даже если вы уже отключили плагины и переключились на тему "Twenty Sixteen", конфликты могут оставаться, если они были кэшированы или если в коде темы имеются ошибки.
-
Ошибки в коде функций: Как было упомянуто, любые выводы или ошибки в
functions.php
вашей темы могут препятствовать корректной работе JavaScript, необходимого для загрузки медиабиблиотеки. -
Проблемы с JavaScript: Если JavaScript не выполняется должным образом, это может привести к тому, что сетевой интерфейс библиотеки не будет загружаться. Ошибки в коде, такие как неправильный синтаксис или конфликты из-за внешних скриптов, могут стать причиной проблемы.
-
Серверные настройки или конфигурации PHP: Проверьте конфигурации вашего сервера, такие как настройки PHP и лимиты памяти. Низкие лимиты могут блокировать выполнение скриптов.
Рекомендации по решению
A. Проверка кода в functions.php
Проверьте, есть ли в вашей теме какие-либо строки, которые могут выводить HTML или другие данные в заголовок страницы. Вывод ненужных данных может блокировать выполнение JavaScript. Если вы добавили код, который выводит какие-либо данные в админке, попробуйте временно закомментировать его.
B. Использование инструмента отладки
-
Включите режим отладки. В
wp-config.php
добавьте следующие строки:define('SCRIPT_DEBUG', true); define('WP_DEBUG', true); define('WP_DEBUG_LOG', true);
Это поможет вам определить, если есть какие-либо скрытые ошибки, которые не отображаются в консоли.
-
Попробуйте выполнить тестовый вызов:
curl -X POST http://YOUR_DOMAIN_NAME_HERE/wp-admin/admin-ajax.php -d 'action=query-attachments&post_id=0&query[orderby]=date&query[order]=DESC&query[post_per_page]=40&query[paged]=1'
Это может помочь вам увидеть, есть ли отклик от сервера.
C. Исправление кода JavaScript
Если вы уверены, что код на стороне клиента (JavaScript) может быть проблемой, проверьте wp-util.js
и внесите изменения, как предложено. Но имейте в виду, что вносить изменения в базовые файлы WordPress не рекомендуется.
Дополнительные шаги
-
Очистка кэша: Возможно, имеющийся кэш мешает загрузке новых данных. Очистите кэш браузера и, если используете кэширование на уровне сервера, сбросьте все кэши.
-
Проверка прав доступа: Убедитесь, что права доступа к папкам, где хранятся изображения, выставлены правильно и сервер имеет доступ к медиафайлам.
Подведение итогов
Если вы пробовали все вышеперечисленные методы и проблема не решена, стоит рассмотреть возможность обращения к вашему хостинг-провайдеру или поддержке WordPress. Иногда проблемы могут быть вызваны настройками на сервере, которые могут не быть вам видны. Надеюсь, эти рекомендации помогут вам разобраться с проблемой загрузки медиабиблиотеки в режиме сетки и вернуться к нормальному функционированию вашего сайта.