我编写了一个插件,它检索xml文件,解析并从内容中创建一系列短文。
尽管每篇帖子都很短(有时只是一句话,永远不会超过几句话),但从该文件中可以创建大约1000篇帖子。
使用wp\\u insert\\u post需要足够的时间使此作业超时,状态为500。
在停用插件并尝试移动相同内容时,我也会遇到类似的问题。
有没有更快的方法来填充(或删除)帖子?
我编写了一个插件,它检索xml文件,解析并从内容中创建一系列短文。
尽管每篇帖子都很短(有时只是一句话,永远不会超过几句话),但从该文件中可以创建大约1000篇帖子。
使用wp\\u insert\\u post需要足够的时间使此作业超时,状态为500。
在停用插件并尝试移动相同内容时,我也会遇到类似的问题。
有没有更快的方法来填充(或删除)帖子?
您可以使用INSERT statement 并一次添加多行。
类似于以下伪代码:
INSERT INTO $wpdb->posts (
`post_author`,
`post_date`,
`post_date_gmt`,
`post_content`,
`post_title`,
`post_status`,
`post_name`,
`post_modified`,
`guid`,
`post_type`,
`post_mime_type`
)
VALUES
( $user_id, $current_date,$current_date_gmt, $content1 ),
( $user_id, $current_date,$current_date_gmt, $content2 ),
( $user_id, $current_date,$current_date_gmt, $content3 )
;
确保填充设置为的所有值NOT NULL
而且没有default
post表架构中的值wp-admin/includes/schema.php
:CREATE TABLE $wpdb->posts (
ID bigint(20) unsigned NOT NULL auto_increment,
post_author bigint(20) unsigned NOT NULL default \'0\',
post_date datetime NOT NULL default \'0000-00-00 00:00:00\',
post_date_gmt datetime NOT NULL default \'0000-00-00 00:00:00\',
post_content longtext NOT NULL,
post_title text NOT NULL,
post_excerpt text NOT NULL,
post_status varchar(20) NOT NULL default \'publish\',
comment_status varchar(20) NOT NULL default \'open\',
ping_status varchar(20) NOT NULL default \'open\',
post_password varchar(20) NOT NULL default \'\',
post_name varchar(200) NOT NULL default \'\',
to_ping text NOT NULL,
pinged text NOT NULL,
post_modified datetime NOT NULL default \'0000-00-00 00:00:00\',
post_modified_gmt datetime NOT NULL default \'0000-00-00 00:00:00\',
post_content_filtered longtext NOT NULL,
post_parent bigint(20) unsigned NOT NULL default \'0\',
guid varchar(255) NOT NULL default \'\',
menu_order int(11) NOT NULL default \'0\',
post_type varchar(20) NOT NULL default \'post\',
post_mime_type varchar(100) NOT NULL default \'\',
comment_count bigint(20) NOT NULL default \'0\',
PRIMARY KEY (ID),
KEY post_name (post_name),
KEY type_status_date (post_type,post_status,post_date,ID),
KEY post_parent (post_parent),
KEY post_author (post_author)
) $charset_collate;\\n";
此外,常规帖子需要一个默认类别。不知道如果你忽略了它会发生什么。现在不使用API可能会为您节省一分钟,但会在数小时后花费您。我做过类似的事情,也遇到过超时,但不是500次,你应该先检查php和appache日志,尝试找到原因。