iTRON
Ответы в темах
-
P.S. А вообще свою проблему решил, деактивировал плагин, потом снова активировал, и все мои правки кода (переводы) отобразились. Но мне все же интересно, почему исправления в коде не отображаются сразу…
Значит плагин сам кэширует свой код.
Господа, дополнительная информация.
Оказывается, любые пользователи, кроме пользователя с правами админа, при попытке посмотреть архив этого типа записи, нагружают память сильнее настолько, что сервер падает (почти 200мб).Прошу, поделитесь какие есть мысли, куда копать..
Я отчаялся ужеПопробуйте скачать текущую ночную сборку 4.3-alpha и скопировать из файла wp-includes/post.php функцию get_page_children() вместо той, что в версии 4.2.2 — она недавно была оптимизирована.
Большущее спасибо.
Сначала подредактировал код, но забыл залить на ftp — естессно ничего не изменилось.
Однако когда я все-таки обновил файл, произошло маленькое чудо, — время генерации страницы сократилось с чудовищных 60 секунд до 7 — 14. Но чудо маленькое, потому что проблема с огромной памятью в админке ( от 110 мб ) осталась, да и 7 секунд конечно тоже много, хотя и не сравнить с тем что было конечно.
Друзья, какие есть еще мысли? Задача какая-то нестандартная прямХочу акцентировать момент — тормоза происходят ТОЛЬКО в админке и ТОЛЬКО на страницах архива/добавления/редактирования/таксономии определенного типа записи. Все остальные разделы админки и пользовательская часть работают нормально.
что может сделать хостер в этой ситуации, какие данные предоставить?
Выводятся посты обычным get_posts, в админке метабоксы выводятся как обычно.
function extra_item( $post ){ ?> <p> Единица товара <i>(шт, кг, м, уп.)</i><br> <input class="pcomplex_option" name="options[pcomplex_edt]" id="options[pcomplex_edt]" type="text" value="<? echo get_post_meta($post->ID, 'pcomplex_edt', true); ?>" style="width : 90px;"/> </p><p> Размеры <i>(Д-Ш-В), см</i><br> <input class="pcomplex_option" name="options[pcomplex_razmer_d]" id="options[pcomplex_razmer_d]" type="text" value="<? echo get_post_meta($post->ID, 'pcomplex_razmer_d', true); ?>" style="width : 90px;"/> <input class="pcomplex_option" name="options[pcomplex_razmer_sh]" id="options[pcomplex_razmer_sh]" type="text" value="<? echo get_post_meta($post->ID, 'pcomplex_razmer_sh', true); ?>" style="width : 90px;"/> <input class="pcomplex_option" name="options[pcomplex_razmer_v]" id="options[pcomplex_razmer_v]" type="text" value="<? echo get_post_meta($post->ID, 'pcomplex_razmer_v', true); ?>" style="width : 90px;"/> </p><p> Вес, кг<br> <input class="pcomplex_option" name="options[pcomplex_ves]" id="options[pcomplex_ves]" type="text" value="<? echo get_post_meta($post->ID, 'pcomplex_ves', true); ?>" style="width : 90px;"/> </p><p> Материал <br> <input class="pcomplex_option" name="options[pcomplex_material]" id="options[pcomplex_material]" type="text" value="<? echo get_post_meta($post->ID, 'pcomplex_material', true); ?>" style="width : 100%;"/> <input type="hidden" name="extra_fields_nonce" value="<?php echo wp_create_nonce(__FILE__); ?>" /> <? };
остается только узнать, каким кодом у вас добавляется\выводится произвольный тип записей.
Не проблема.
add_action('init', 'create_taxonomy'); function create_taxonomy(){ // категории товаров $labels = array( 'name' => 'Категория', 'singular_name' => 'Категории товаров', 'search_items' => 'Поиск категорий', 'all_items' => 'Все категории', 'parent_item' => 'Родительская категория', 'parent_item_colon' => 'Родительскаякатегория:', 'edit_item' => 'Редактировать категорию', 'update_item' => 'Обновить категорию', 'add_new_item' => 'Добавить новую категорию', 'new_item_name' => 'New Type Name', 'menu_name' => 'Категории товаров', ); // параметры $args = array( 'label' => '', // определяется параметром $labels->name 'labels' => $labels, 'hierarchical' => true, 'rewrite' => true, 'query_var' => true, 'show_admin_column' => true, // Позволить или нет авто-создание колонки таксономии в таблице ассоциированного типа записи. (с версии 3.5) ); register_taxonomy('item_class', 'item', $args ); // производители товаров $labels = array( 'name' => 'Производитель', 'singular_name' => 'Производители товаров', 'search_items' => 'Поиск производителей', 'all_items' => 'Все производители', 'parent_item' => 'Родительский производитель', 'parent_item_colon' => 'Родительский производитель:', 'edit_item' => 'Редактировать производителя', 'update_item' => 'Обновить производителя', 'add_new_item' => 'Добавить нового производителя', 'new_item_name' => 'New Type Name', 'menu_name' => 'Производители', ); // параметры $args = array( 'label' => '', // определяется параметром $labels->name 'labels' => $labels, 'hierarchical' => true, 'rewrite' => true, 'query_var' => true, 'show_admin_column' => true, // Позволить или нет авто-создание колонки таксономии в таблице ассоциированного типа записи. (с версии 3.5) ); register_taxonomy('item_company', 'item', $args ); } add_action('init', 'my_custom_init'); function my_custom_init() { //Товары $labels = array( 'name' => 'Товары', 'singular_name' => 'Товар', 'add_new' => 'Добавить новый', 'add_new_item' => 'Добавить новый товар', 'edit_item' => 'Редактировать товар', 'new_item' => 'Новый товар', 'view_item' => 'Посмотреть товар', 'search_items' => 'Найти товар', 'not_found' => 'Товаров не найдено', 'not_found_in_trash' => 'В корзине товар не найден', 'parent_item_colon' => '', 'menu_name' => 'Товары' ); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => true, 'capability_type' => 'post', 'has_archive' => false, 'hierarchical' => true, 'menu_position' => 4, 'supports' => array('title','editor','thumbnail','page-attributes'), 'menu_icon' => 'dashicons-cart', 'taxonomies' => array( 'item_class' ), ); register_post_type( 'item', $args ); }; add_filter('post_updated_messages', 'object_updated_messages'); function object_updated_messages( $messages ) { global $post, $post_ID; $messages['object'] = array( 0 => '', // Не используется. Сообщения используются с киндекса 1. 1 => sprintf( 'Данные объекта обновлены. <a href="%s">Посмотреть</a>', esc_url( get_permalink($post_ID) ) ), 2 => 'Произвольное поле обновлено.', 3 => 'Произвольное поле удалено.', 4 => 'Объект обновлён.', /* %s: дата и время ревизии */ 5 => isset($_GET['revision']) ? sprintf( 'Запись объекта восстановлена из ревизии %s', wp_post_revision_title( (int) $_GET['revision'], false ) ) : false, 6 => sprintf( 'Запись объекта опубликована. <a href="%s">Посмотреть</a>', esc_url( get_permalink($post_ID) ) ), 7 => 'Объекта сохранён.', 8 => sprintf( 'Объект сохранён. <a target="_blank" href="%s">Предпросмотр</a>', esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ), 9 => sprintf( 'Запись объекта запланирована на: <strong>%1$s</strong>. <a target="_blank" href="%2$s">Предпросмотр</a>', // Как форматировать даты в PHP можно посмотреть тут: http://php.net/date date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ), esc_url( get_permalink($post_ID) ) ), 10 => sprintf( 'Черновик объекта обновлен. <a target="_blank" href="%s">Предпросмотр</a>', esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ), ); return $messages; };
Далее идет подключение метабоксов.
вы в самом первом сообщении сказали, что отключение крона ни к чему не приводит. но потом почему-то решили, что отключенный крон и есть проблема.
Я не решил, я предположил. Конечно, отключенный крон должен был решить проблему, если это он. Просто я не знаю куда уже думать.
а что у вас крон делает то?
вы с этим разберитесь.Дак у меня ничего особенного он не делает, я бы и хотел как раз уточнить, что именно входит в его обязанности, из-за чего он может вешать систему.
а причем тут вообще крон?
[01/Jun/2015:23:36:49 +0300] «POST /wp-cron.php?doing_wp_cron=1433191009.7325000762939453125000 HTTP/1.0» 500 216
[01/Jun/2015:23:36:49 +0300] «POST /wp-cron.php?doing_wp_cron=1433191009.0204570293426513671875 HTTP/1.0» 500 41Все они создают дополнительные вкладки в верхнем меню, а не в админке.
Точно, не заметил, спасибо.
Debug Bar
Скорость всех запросов 179.8 ms
Экшены 1409.79msОпять ничего. Это со страницы, которая грузилась 30 секунд.
Неужели все таки крон?Database query time 0,3217 s
с бд всё в порядке как видно
А P3 (Plugin Performance Profiler) что показал?
Тоже ничего особенного — все запросы по его скану от .1 до 3.0 секунд, никаких перегрузов он не заметил.
Сейчас тестирую Query MonitorК сожалению, плагин Debug Bar и два его дополнения Debug Bar Slow Actions и Debug Bar Console ничег не дало — плагин не создал никаких дополнительных меню в админке.
Сначала нужно понять на что тратятся эти 60 сек.
Для этого есть инструменты, которые приведены выше.Я понял, потестирую, отпишусь.