有几种方法可以在保存后获取帖子的id(自动等),但是有没有方法可以在创建新帖子后立即获取帖子id?
我正在尝试使用post id创建目录,但似乎无法获得静态post id。
下面的代码似乎有效,但每次新帖子自动保存草稿时,我都会得到一个自动递增的id,我会不断得到一个新的数字。
function myfunction( $id ) {
if (!file_exists("/www/foo/blog/wp-content/uploads/" . $id)) {
mkdir("/www/foo/blog/wp-content/uploads/" . $id, 0777);
}
}
add_action(\'save_post\', \'myfunction\');
我想获取将保存为的帖子id。当然,WP有一种方法来确定这一点是否正确?或者草稿是否每分钟自动保存一次,将id递增一次,直到单击实际的“发布”按钮?
有什么想法?
干杯bo公司
最合适的回答,由SO网友:Adam 整理而成
试试这个。。。
add_action(\'post_updated\', \'myfunction\');
function myfunction( $post_id ) {
global $post;
if (!file_exists("/www/foo/blog/wp-content/uploads/" . $post_id)) {
mkdir("/www/foo/blog/wp-content/uploads/" . $post_id, 0777);
}
}
NOTE: 更改自
save_posts
到
post_updated
这将在其启动时停止重复问题
"publish" 但不是每次你打
add new
或
update
等
NOTE: 我通过测试上面的代码片段为您验证了这一点-一切都很好。
NOTE: 您还可以使用(wp_upload_dir() . $post_id, 0777)
如果您想要一个更具可移植性的路径,或者如果您正在开发一个插件或主题供公众使用。