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

Вопрос или проблема

Библиотека медиафайлов не загружается в сеточном представлении, и изображение обложки не выбирает ни одно изображение из поста или страницы. Круг с прогрессом продолжает вращаться. Из-за этой проблемы я не могу добавить изображение в пост, так как опция вставки изображения также открывается по умолчанию в «сеточном представлении».

Вот что я пробовал, но это не решило мою проблему:

  1. Удалил все плагины. Переключился на тему двадцать шестнадцать.
  2. Удалил всю установку WordPress. Установил свежую.
  3. Включил отладку скриптов. В консоли не отображается никаких ошибок. Также пытался перезагрузить страницу.

Я не могу ничего делать на своём сайте уже много дней, пожалуйста, помогите мне.

Я столкнулся с аналогичной проблемой с теми же симптомами. Я определил, что в файле 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. После большого количества отладки я исправил свою проблему шаг за шагом.

  1. Сначала добавьте указанный ниже код в ваш db-config.php
define('SCRIPT_DEBUG', TRUE);
define('WP_DEBUG', TRUE);
define( 'WP_DEBUG_LOG', true );
  1. Затем перейдите в файлы /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;
  }

Пожалуйста, проверьте, возможно, ваша проблема разрешится.

  1. если вы удалили константы из db-config.php
define('SCRIPT_DEBUG', TRUE);
define('WP_DEBUG', TRUE);
define( 'WP_DEBUG_LOG', true );   
  1. Затем сожмите ваш файл /wp-includes/js/wp-util.js и поместите ваш сжатый код в /wp-includes/js/wp-util.min.js

У меня была такая же проблема несколько дней назад. Я попытался использовать функцию ob_start();

в начале файла function.php активной темы. И Библиотека медиафайлов загрузилась нормально.

Ответ или решение

Когда медиабиблиотека в админ-панели WordPress не загружается в режиме сетки, это может создавать значительные неудобства для управления контентом. В данном случае проблема заключается в том, что прогресс-центр продолжает вращаться, что мешает выбору изображений для публикаций. Давайте проанализируем проблему и возможные решения, учитывая предоставленные детали.

Возможные причины проблемы

  1. Конфликт плагинов или тем: Даже если вы уже отключили плагины и переключились на тему "Twenty Sixteen", конфликты могут оставаться, если они были кэшированы или если в коде темы имеются ошибки.

  2. Ошибки в коде функций: Как было упомянуто, любые выводы или ошибки в functions.php вашей темы могут препятствовать корректной работе JavaScript, необходимого для загрузки медиабиблиотеки.

  3. Проблемы с JavaScript: Если JavaScript не выполняется должным образом, это может привести к тому, что сетевой интерфейс библиотеки не будет загружаться. Ошибки в коде, такие как неправильный синтаксис или конфликты из-за внешних скриптов, могут стать причиной проблемы.

  4. Серверные настройки или конфигурации PHP: Проверьте конфигурации вашего сервера, такие как настройки PHP и лимиты памяти. Низкие лимиты могут блокировать выполнение скриптов.

Рекомендации по решению

A. Проверка кода в functions.php

Проверьте, есть ли в вашей теме какие-либо строки, которые могут выводить HTML или другие данные в заголовок страницы. Вывод ненужных данных может блокировать выполнение JavaScript. Если вы добавили код, который выводит какие-либо данные в админке, попробуйте временно закомментировать его.

B. Использование инструмента отладки

  1. Включите режим отладки. В wp-config.php добавьте следующие строки:

    define('SCRIPT_DEBUG', true);
    define('WP_DEBUG', true);
    define('WP_DEBUG_LOG', true);

    Это поможет вам определить, если есть какие-либо скрытые ошибки, которые не отображаются в консоли.

  2. Попробуйте выполнить тестовый вызов:

    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. Иногда проблемы могут быть вызваны настройками на сервере, которые могут не быть вам видны. Надеюсь, эти рекомендации помогут вам разобраться с проблемой загрузки медиабиблиотеки в режиме сетки и вернуться к нормальному функционированию вашего сайта.

Оцените материал
Добавить комментарий

Капча загружается...