0

我正在制作一个两部分的表单,以允许用户在 WordPress 上创建帖子。

第一部分包含帖子标题、内容和链接,然后使用 AJAX 从该数据创建帖子。当使用wp_insert_post()帖子 ID 创建帖子时,将返回。

function makeblog_page2form (){

    global $make_post_id;

    if( check_admin_referer('page2form_submit','page2form_subform') ){

        // more code

        $make_post_id = wp_insert_post( $post );


        exit;

    } else{
        wp_redirect( home_url( '/submission-error/' ) );
        exit;
    }

}

第二部分拍摄一张图片并将其上传到 WordPress 画廊,然后将图片附加到帖子中作为其特色图片。对于图像提交,我使用的是Frontend Uploader,并使用了add_action('fu_after_upload', callback_function)这个插件中包含的。

当我尝试在 中使用$make_post_id全局add_action()附加图像时遇到问题,没有返回任何内容。

add_action( 'fu_after_upload', function( $attachment_ids ) { 

    global $make_post_id;
    var_dump($make_post_id); // no return value

} );

这两个都在同一个file.php中。

如果这还不够清楚,请告诉我。谢谢。

4

1 回答 1

1

Try passing this variable to the anonymous function scope:

global $make_post_id;
add_action( 'fu_after_upload', function( $attachment_ids ) use ($make_post_id){
    var_dump($make_post_id);
});

Global variables does not preserve values between separate request, so you have either return post ID form first call and pass it alongside uploaded files or store and access it in $_SESSION array.

于 2012-06-13T21:26:57.633 回答