Intereting Posts
Как добавить дополнительный атрибут в разделе «Атрибут страницы» в wp-admin для страниц? Объект класса WP_Post не может быть преобразован в строку Ссылка с миниатюры на сообщение не работает Автоматически сгенерированная довольно постоянная ссылка, не использующая название с версии 4.4 Получение ссылки the_excerpt на дочерние страницы Шаблон страницы по категориям (архив) по категориям Отображение недавних выдержек на статической главной странице tinyMCE.activeEditor = null Редактор WP загружен в режим «Текст»? С помощью wp-cli я не могу запрашивать страницы по их названию? Как создать настройки, используемые только моей темой? Меню администратора и администратора. Плагин разрешений Широкоэкранные широкоэкранные изображения Genereate разных размеров Получать пользовательские поля при наведении ссылки на сообщение WP-e-Commerce и проблема интеграции W3-Total-Cache Изменение размера шрифта в пределах короткого кода

Экран администратора WordPress очень медленный / тайм-аут при редактировании или добавлении новой страницы / пользовательского сообщения

Я новичок на сайте, но ценю любую помощь, которую вы можете дать.

У меня есть настройка WordPress, которая (правильно или неправильно) содержит сотни страниц и тысячи других настраиваемых типов сообщений, которые также основаны на странице (т.е. иерархической).

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

Обычно тайм-аут вокруг метки атрибутов (иногда он загружает всю страницу, иногда нет, но в основном она либо чрезвычайно непригодна, либо вообще не используется).

Мое предположение состоит в том, что, поскольку в меню иерархии (в поле Атрибуты) загружается так много элементов, они вызывают тайм-аут.

Я понимаю, что, возможно, использование такого количества страниц таким образом, пожалуй, не оптимально для WP, но это ситуация, в которой находится сайт, и я не могу ее легко изменить (и, к сожалению, необходимость размещения страницы в определенной иерархии необходима Я не могу просто скрыть поле Атрибуты от администратора).

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

Любые htaccess / php.ini hacks (я пробовал пару, как увеличение объема памяти / время выполнения, но, похоже, не помогло) или что-то еще, что вы думаете, я могу попробовать (я открыт почти любой идее), что-то в MYSQL может кэшировать его (может быть, я не эксперт по этому поводу)

Очень ценю любую помощь, которую вы можете дать

Спасибо, Ник

PS Это WordPress 3.2.1 PPS. Я также попытался отредактировать структуру permalink, поэтому он не включает в себя% post-name, но это не помогло PPPS. Я также попытался дублировать сайт и обновить последнюю версию бета-версии WordPress 3.3, но все тот же PPPPS. сайт находится на облачном сервере сайтов Rackspace

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

Это может не помочь, но это не помешает вам попробовать … Войдите в область администрирования сервера, вызовите клиентский интерфейс для администрирования базы данных (например, phpMyAdmin), удалите все сообщения, где их «тип» помечен как переделать, а затем соединить таблицу.

Если у вас тысячи страниц, у вас также могут быть миллионы изменений, замедляющих ваш доступ.

Проблема кроется в другом месте. WordPress создает иерархию страниц для заполнения поля выбора post_parent. Когда есть много страниц, эта функция может быть немного медленной (иногда она очень медленная).

Так что вы можете с этим поделать?

Вы можете отключить метатекст атрибутов страницы по умолчанию WordPress, используя следующий код:

 if (is_admin()) : function my_remove_meta_boxes() { remove_meta_box('pageparentdiv', 'page', 'side'); } add_action( 'admin_menu', 'my_remove_meta_boxes' ); endif; 

Если вам нужно установить иерархию этих страниц (установите post_parent для страниц), вы все равно можете это сделать. Просто добавьте свой собственный мета-ящик и поместите туда поле выбора со списком страниц. Вы должны быть уверены, что ваш запрос (чтобы выбрать эти страницы) более эффективен (список страниц без иерархии и выберите только заголовок и page_id, или что-то в этом роде).

PS. Посмотрите на исходный код WPs, чтобы понять, почему он может быть медленным, когда есть много страниц … Он использует get_pages с hierarchical аргументом, установленным в true. Тогда он использует get_page_children и это не очень эффективная функция …

У меня была одна и та же проблема с 5000 + страницами, и это заняло довольно много времени. Проблема заключалась в атрибутах страницы, которые использовали wp_dropdown_pages -> для загрузки всех страниц!

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

И поскольку мне не нравится взламывать файлы ядра, мое решение состояло в том, чтобы удалить, а затем снова включить мою собственную версию атрибутов страницы (взятую из основных файлов).

 // Override of Page Attribute meta box // This is because the load time of wp_dropdown_pages(), which is removed in our version. // (original: page_attributes_meta_box() in wp-admin/includes/meta-boxes.php) // Remove the original meta box add_action( 'admin_menu', 'custom_remove_meta_box'); function custom_remove_meta_box(){ remove_meta_box('pageparentdiv', 'page', 'side'); } // Add our own meta box instead add_action( 'add_meta_boxes', 'cuustom_add_meta_box'); function custom_add_meta_box() { add_meta_box('pageparentdiv', __('Page Attributes') , 'custom_page_attributes_meta_box', 'page', 'side'); } // Use custom page attributes meta box, no need to load dropdown with pages! function custom_page_attributes_meta_box($post) { if ( 'page' == $post->post_type && 0 != count( get_page_templates( $post ) ) ) { $template = !empty($post->page_template) ? $post->page_template : false; ?> <p><strong><?php _e('Template') ?></strong></p> <label class="screen-reader-text" for="page_template"><?php _e('Page Template') ?></label> <select name="page_template" id="page_template"> <option value='default'><?php _e('Default Template'); ?></option> <?php page_template_dropdown($template); ?> </select> <?php } ?> <p><strong><?php _e('Order') ?></strong></p> <p><label class="screen-reader-text" for="menu_order"><?php _e('Order') ?></label><input name="menu_order" type="text" size="4" id="menu_order" value="<?php echo esc_attr($post->menu_order) ?>" /></p> <p><?php if ( 'page' == $post->post_type ) _e( 'Need help? Use the Help tab in the upper right of your screen.' ); ?></p> <?php } 

В WP 3.5.1 для решения этой большой проблемы (если вам не нужно часто использовать поле атрибутов) лучший способ просто не отображать поле атрибутов. Для этого прокомментируйте строки с 132 по 134 в wp-admin / edit-form-advanced.php. Не отображается поле атрибутов, не медленная страница редактирования.