我是WordPress的新手,我正在开发一个插件,可以通过媒体库上传文件。如果根据某些条件的验证文件是有效的,则对其进行处理。另一方面,如果不需要处理该文件,则将其删除。问题是数据库中有关于创建的post的数据。下面的代码是我用来从上传的文件中获取信息的代码。
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');
}
}
}
此时我需要post id来删除post先前删除上传的文件。
我想在触发筛选器时获取post id,并将其作为参数传递给函数parse。
我想是这样的:
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?