Страница администратора пользовательского типа Wordpress очень медленная
(Я разместил это на обычном обмене стеками, но было предложено, чтобы я тоже разместил это здесь. Рад узнать, что это место существует...:))
Итак, я обшарил весь Интернет, пытаясь выяснить, что происходит с парой сайтов, которые у меня есть, и я думаю, что наконец-то смог это отследить...
НО
Я хочу сначала убедиться, что я все делаю правильно, прежде чем перейти на 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
Проблема возникает там, где я пытаюсь получить доступ к странице со списком для этого пользовательского типа записи. Аналогичная страница для сообщений - "Сообщения" на боковой панели администратора в левой части страницы администратора. Название страницы, которая у меня есть для моего пользовательского списка типов сообщений, достаточно подходящего, "Продукты". При доступе к этой странице для загрузки требуется буквальный ВОЗРАСТ. Хорошо, так что на самом деле это что-то вроде 8-12 секунд от загрузки до загрузки, где любая другая страница на стороне администратора загрузится примерно за 1-2 секунды. Кроме того, на странице часто заканчивается время ожидания и появляется общая ошибка "Служба временно недоступна". (Не уверен, откуда берется эта ошибка. Apache, Wordpress и т.д.)
Это отклоняющееся поведение привело к мне нужно попытаться отладить административную часть моего сайта. Я нашел плагины "Панель отладки" и "Расширитель панели отладки". Используя эти плагины в тандеме, и после загрузки соответствующей страницы, я могу просмотреть запрос для этой страницы, но аргументы запроса в данном случае являются более важным сравнением:
-- для страницы со списком сообщений --
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. Независимо от этого факта, аргумент запроса posts_per_page для страницы продуктов (показано выше) имеет значение -1, что означает, что Wordpress захватывает ВСЕ сообщения с моим пользовательским типом записи "продукты", но затем отображает только необходимые 25. Это происходит идентичным образом для нескольких страниц (разбивка на страницы), связанных с моим списком товаров.
Мне это кажется фальшивым. Таким образом, мой вопрос: Я неправильно настроил (зарегистрировал) пользовательский тип записи? Я наблюдаю такое же поведение, когда отключаю все другие плагины на своем сайте, и я использую только функция register_post_type для настройки этого пользовательского типа записи. Если здесь происходит что-то неправильное, (как мне кажется) Я сообщу об этом в Wordpress. Если бы не это...Я не хотел "доставать" их без необходимости. :)
Я видел такое поведение на нескольких сайтах, но причина, по которой время загрузки страницы администратора для меня на этом сайте, заключается в том, что у меня более 3 тысяч сообщений с этим пользовательским типом сообщений, в то время как на других сайтах, использующих мой регистрационный код пользовательского типа сообщений, только ~300-400 продукты на них.
Спасибо всем, кто готов помочь и/или прокомментировать.
1 answers
Удаление параметра hierarchical
из вызова функции register_post_type
сделало свое дело, согласно предложению ванкодера. В конце концов, глядя на то, что делает иерархический параметр (установите новый тип записи так, чтобы он вел себя как тип записи page
), я понимаю, что, вероятно, его не следовало устанавливать в первую очередь.