Intereting Posts
Вам нужно иметь доступ к командной строке для использования Subversion с WordPress? Как добавить Cron в WordPress Почему мои константы недоступны вне моего класса? Вторичное меню в WP 4.5 Получите только непосредственных детей (а не внуков) иерархического пользовательского таксономического термина Показать ссылку для добавления меню Как я могу получить $ pagenow равным домашней странице или определенной странице на моем сайте? Поиск не работает. Добавление «<?» К поиску Используйте jQuery для условного скрытия элементов в Quick Edit PHP Warning: call_user_func () ожидает, что параметр 1 будет действительным обратным вызовом Сделать конкретный тег видимым только для зарегистрированных пользователей в интерфейсе Переписывание URI: обработка одной страницы register_uninstall_hook () vs uninstall.php – какой из них лучше справиться с скриптом удаления плагина? Выбор правильного типа хостинга для многоязычного WordPress Как получить таксономию типа публикации пользовательского типа в wordpress?

wp_insert_post массовый импорт 500 ошибок сервера

Я работаю над инструментом импорта WordPress, где я использую пользовательскую таблицу города в моей базе данных с долготой, широтой, которая объединяется с каким-то другим текстом, а затем импортируется с помощью wp_insert_post() . Это отлично работает, но после 3200 – 3600 сценарий останавливается, и я получаю 500 внутренних ошибок сервера.

Я испробовал несколько решений для решения этой проблемы:

Я увеличил следующие настройки php.ini:

  • max_input_time
  • max_execution_time
  • memory_limit
  • mysql.connect_timeout
  • max_input_time
  • post_max_size

Увеличенный WP_MEMORY_LIMIT – wp_config.php:

 define('WP_MEMORY_LIMIT', '128M'); 

И увеличил мой лимит времени в wp_config.php.

 set_time_limit(240); 

Пробовал это также с моим файлом htaccess:

 php_value max_execution_time 240 

Отладил мои ошибки, но у меня все еще есть ошибка 500.

Я связался с моим хозяином, и они сказали мне установить set_time_limit(); который я установил в function.php, в файле моего импортера и wp_config.php, но не удался.

Я просмотрел свои настройки php с помощью phpinfo(); и там у меня есть max_execution_time из 120. Я попросил мой хост увеличить его и по-прежнему та же проблема.

Это мой сценарий импорта:

 // Get results global $wpdb; $results = $wpdb->get_results( "SELECT * FROM stn_locations" ); if( $results ) { // Submit button clicked if( isset( $_POST['submit'] ) ) { foreach( $results as $result ) { // Set variables $location_name = $result->stnl_name; $location_longitude = $result->stnl_longitude; $location_latitude = $result->stnl_latitude; $location_country = $result->stnl_country; $location_term = $_POST['term']; // Content $location_content = $_POST['stn_filter_import_content']; $location_content = str_replace( '%%location%%', $location_name, $location_content ); $location_content = str_replace( '%%category%%', $location_term, $location_content ); // Build post_title $post_title = $location_term . ' ' . $location_name; if( $location_country == $_POST['country'] ) { // Import data $import_data = array( 'post_title' => $post_title, 'post_content' => $location_content, 'post_status' => 'publish', 'post_type' => 'filter', ); // Insert post $post_id = wp_insert_post( $import_data ); if( ! is_wp_error( $post_id ) ) { // Set Term wp_set_object_terms( $post_id, $location_term, 'service' ); // Set meta fields update_post_meta( $post_id, 'longitude', $location_longitude ); update_post_meta( $post_id, 'latitude', $location_latitude ); $success = true; } else { $error = true; } } } } } 

У кого-нибудь есть решение, подсказка, настройка или другая функция для меня? Дай мне знать! Спасибо.

Solutions Collecting From Web of "wp_insert_post массовый импорт 500 ошибок сервера"

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

Напишите свой одноразовый скрипт, чтобы сделать все, что вам нужно, чтобы это сделать. Если вам нужен доступ к функциям WordPress в этом процессе, включите файл wp-load.php в начало скрипта.

Затем перейдите в приглашение оболочки на своем сервере и выполните «php yourscript.php», чтобы запустить его. В командной строке PHP нет ограничений времени выполнения, и это займет столько времени, сколько потребуется.