代码之家  ›  专栏  ›  技术社区  ›  Mario

如何获取使用媒体库上载文件时创建的帖子的ID?

  •  0
  • Mario  · 技术社区  · 6 年前

    我是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?

    0 回复  |  直到 6 年前