我是wordpress的新手,我在一个插件上工作,该插件通过媒体库上传文件。如果根据某些条件的验证该文件有效,则将对其进行处理。另一方面,如果不需要处理文件,则将其删除。问题在于数据库中存在有关所创建帖子的数据。以下代码是我用来从已上传文件中获取信息的代码。
add_filter('wp_handle_upload', 'upload_handler', 10, 1);
function upload_handler($upload) {
$file = $upload['file'];
$type = $upload['type'];
if (condition_1($type) && condition_2($file)) {
parse($file);
}
}
要删除文件,请输入以下内容
function parse($file) {
// ... parse logic here
if ($noNeedToParse) {
if (unlink($file)) {
printMessage('File removed from file system');
}
}
}
这时我需要帖子ID才能删除帖子,而之前的帖子则要删除上传的文件。
我想在触发过滤器时获取帖子ID,并将其作为参数传递给函数解析。
我认为是这样的:
function custom_handle_upload($upload) {
$postID = // some logic to get the id
$file = $upload['file'];
$type = $upload['type'];
if (hasValidType($type) && hasValidName($file)) {
parseXLSX($file, $postID); // pass $postID
}
}
我一直在尝试不同的组合
global $post;
var_dump($_post->ID);
但是没有成功,从这个例子中我得到null
在这种情况下,从媒体库上传文件时如何获取创建的帖子ID?