Intereting Posts
Где получить доступ к доступным обновлениям плагина / WordPress? Может ли этот короткий код Множественное, вложенное отношение tax_query Добавить кнопку в редактор tinyMCE в пользовательском типе сообщения Категоризация результатов поиска на основе пользовательских полей Получить архивы в виде массива Как включить пользовательское сообщение из плагина Как использовать другой размер изображения для персонализированного типа сообщения? Вложенные пользовательские таксономии | Неправильные сообщения при запросе Как получить комментарии, кроме использования wp_list_comments? Импорт WordPress не импортирует пользовательскую таксономию Создание статической страницы из сценария Выбор и вывод результатов из БД с помощью массива Возможно ли создание мультисайта на основе суб / субдоменов? Изменить значение по умолчанию курсивом от <i> до <em> в редакторе admin

WordPress Custom Post Type Admin Страница действительно медленная

(Я опубликовал это на обычном обмене стеками, но было высказано предположение, что я тоже его здесь помешал. Рад узнать, что это место существует … :))

Итак, я по всему интернету пытался выяснить, что происходит с несколькими сайтами, которые у меня есть, и я думаю, что, наконец, я смог отследить его …

НО

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

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

/* Create custom Products taxonomy */ function create_custom_products_taxonomies() { register_post_type( 'products', array( 'labels' => array( 'name' => __( 'Products' ), 'singular_name' => __( 'Product' ), 'add_new' => __( 'Add New' ), 'add_new_item' => __( 'Add New Product' ), 'edit' => __( 'Edit' ), 'edit_item' => __( 'Edit Product' ), 'new_item' => __( 'New Product' ), 'view' => __( 'View Product' ), 'view_item' => __( 'View Product' ), 'search_items' => __( 'Search Products' ), 'not_found' => __( 'No products found' ), 'not_found_in_trash' => __( 'No products found in Trash' ), 'parent' => __( 'Parent Product' ) ), 'public' => true, 'hierarchical' => true, 'menu_position' => 20, 'publicly_queryable' => true, 'query_var' => true, 'rewrite' => array("slug" => "/products", "with_front" => false), 'supports' => array('title', 'author', 'thumbnail', 'editor', 'excerpt', 'comments', 'page-attributes', 'common', 'custom-fields', 'revisions'), 'register_meta_box_cb' => 'products_meta_box', 'taxonomies' => array('products') ) ); register_taxonomy( 'products', 'products', array( 'hierarchical' => true, 'label' => __(ucfirst('products')), 'show_in_nav_menus' => true, 'rewrite' => array('slug' => 'categories') ) ); } add_action('init', 'create_custom_products_taxonomies'); // Create the necessary custom taxonomies for products 

Проблема возникает, когда я пытаюсь получить доступ к странице списка для этого настраиваемого типа сообщений. Аналогичная страница для сообщений – «Сообщения» на боковой панели администратора в левой части страницы администратора. Имя страницы, которая у меня есть для моего листинга типа персонализированного типа, достаточно соответствует «Продуктам». При доступе к этой странице требуется загрузить литерал AGE. Хорошо, так что это действительно что-то вроде 8-12 секунд от загрузки до загрузки, где любая другая страница на стороне администратора будет загружаться примерно через 1-2 секунды. Кроме того, на странице часто будет время ожидания и генерируется общая ошибка о том, что «Услуга временно недоступна». (Не уверен, откуда эта ошибка. Apache, WordPress и т. Д.)

Это отклоняющее поведение заставило меня попробовать и отладить админку моего сайта. Я нашел плагины «Debug Bar» и «Debug Bar Extender». Используя эти плагины в тандеме и после загрузки соответствующей страницы, я могу просмотреть запрос для этой страницы, но аргументы запроса являются более важным сравнением в этом случае:

– для страницы списка сообщений –

post_type = пост & posts_per_page = 400


– для страницы со списком продуктов –

order = asc & orderby = menu_order + title & post_type = products & posts_per_page = -1 & posts_per_archive_page = -1


В этом случае количество сообщений, отображаемых на странице «Сообщения» (указано на вкладке «Параметры экрана» в верхней части страницы), равно 400. Выглядит хорошо.

Однако количество отображаемых продуктов (задано таким же образом, но на странице «Продукты») установлено на 25. Независимо от этого факта аргумент query_per_page для страницы «Продукты» (показан выше) установлен в -1 , что означает, что WordPress захватывает ВСЕ записи с моими специальными типами сообщений, но затем отображает только 25. Это происходит одинаково для нескольких страниц (разбиение на страницы), связанных с моим списком продуктов.

Это кажется мне фиктивным. Таким образом, мой вопрос: неправильно ли я создал (зарегистрированный) тип пользовательских сообщений? Я вижу такое же поведение, когда отключу все другие плагины на моем сайте, и я использую функцию register_post_type для настройки этого настраиваемого типа сообщений. Если что-то не так происходит здесь (как мне кажется), я сообщу об этом в WordPress. Если бы не было … я не хотел «ошибочно» их излишне. 🙂

Я видел это поведение на нескольких сайтах, но причина, по которой время загрузки страницы admin на мне было на этом сайте, состоит в том, что у меня есть 3k + сообщения с этим настраиваемым типом сообщений, тогда как на других сайтах, использующих мой пользовательский код регистрации типа записи имеют только 300-400 продуктов.

Спасибо всем, кто хочет помочь и / или прокомментировать.

Solutions Collecting From Web of "WordPress Custom Post Type Admin Страница действительно медленная"

Удаление hierarchical параметра из вызова функции register_post_type выполнило трюк в соответствии с предложением vancoder. На заднем конце, глядя на то, что делает иерархический параметр (установить новый тип сообщения, чтобы вести себя как тип сообщения page ), говорит мне, что он, вероятно, не должен был быть установлен в первую очередь.