我正在开发一个Wordpress导入工具,我在数据库中使用一个自定义城市表,其中包含经度、纬度,这些经度和纬度与一些其他文本相结合,然后通过以下方式导入wp_insert_post()
. 这很好,但在3200-3600之后,脚本停止,我得到一个500内部服务器错误。
我尝试了多种解决方案来解决此问题:
我增加了以下php。ini设置:
mysql的最大输入时间(max\\u input\\u time)。connect\\U timeout(连接超时)增加了WP\\U内存限制为WP\\U配置。php:
define(\'WP_MEMORY_LIMIT\', \'128M\');
并增加了我在wp\\U配置中的时间限制。php也是。
set_time_limit(240);
还尝试了我的htaccess文件:
php_value max_execution_time 240
调试了我的bug,但我仍然得到了500个错误。
我联系了我的主人,他们告诉我设置set_time_limit();
这是我在函数中设置的。php,在我的导入器和wp\\u config文件中。php,但没有成功。
我通过查看我的php设置phpinfo();
在这里,我的最大执行时间是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;
}
}
}
}
}
是否有人为我提供解决方案、提示、设置或其他功能?让我知道!非常感谢。