这个ID
列为auto-increment
在数据库中,似乎是这样。每当将新行添加到wp_posts
, 这个ID
自动递增。
如何创建预生成的IDwp_insert_post
将使用?
我的代码如下所示:
function generateRandomPostID( $id ) {
return $id + generateRandomInt(); //assuming it\'s an int.
}
add_filter( \'insertion_of_post_filter_ID\', \'generateRandonPostID\' );
以下是我的意图和设置:
我正在尝试使用WordPress附带的WXR导出器生成导出数据,稍后将使用WXR导入器导入。不幸的是,每当我生成导出数据时,帖子很有可能被复制——假设客户的站点上已经有相同ID的帖子(很有可能),我的帖子就不会被导入。
我会有很多导出文件,都在同一个类别内,而且很有可能重复,因为对于每个导出文件,我都会从新安装WordPress开始导出。重复的帖子ID显然是不可能的。
至于解决方案,我相信我不能回去追溯主动更改帖子ID,因为已经建立了条款和关系,如果我的帖子ID发生更改,所有的元/关系都会突然被删除,或者可能会被删除wp_update_post
这也很好,但由于我需要编写功能来直接更改帖子的ID,所以听起来并没有那么好。
简单易行的方法就是告诉WordPress,我希望创建的任何帖子的ID都是高整型的,比如63467
当它创建帖子时,与我的客户已经安装的内容发生冲突的可能性极低。
This can be a hack and it\'s no problem. 这是我正在构建的一个仅供开发使用的内部工具,该功能的唯一目的是为帖子生成一个唯一的ID。它不需要尊重任何东西,只需要确保元/关系以及通常创建/链接的任何东西wp_insert_post
也得到了照顾。
这意味着我不必为出口商或进口商编写代码,但wp_insert_post
, 我不能确切地指出我应该去哪里。这个import_id
看起来确实不错-它说它将尝试使用该ID导入它,如果它已经存在,只需默认为增量,但到目前为止我还没有成功。
最合适的回答,由SO网友:Justin Waulters 整理而成
我这样做了,它给了我一个关于布景的帖子import_id
:
$my_post = array(
\'import_id\' => 1234567890,
\'post_title\' => \'Custom ID\',
\'post_content\' => \'This post has a custom ID.\',
\'post_status\' => \'publish\',
);
wp_insert_post( $my_post );
此外,这将把ID/索引提高到您在import\\u ID中设置的整数,以便后续帖子的ID将从那里递增(即1234567891、1234567892等)-允许您使用大整数作为带有自定义ID的帖子的基数。
请试一试,让我知道进展如何。