Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WordPress中的PHP全局变量未返回预期值_Php_Wordpress_Upload - Fatal编程技术网

WordPress中的PHP全局变量未返回预期值

WordPress中的PHP全局变量未返回预期值,php,wordpress,upload,Php,Wordpress,Upload,我正在制作一个由两部分组成的表单,允许用户在WordPress上创建帖子 第一部分接收文章标题、内容和链接,然后使用AJAX从该数据创建文章。使用wp\u insert\u post()创建帖子时,会返回帖子ID function makeblog_page2form (){ global $make_post_id; if( check_admin_referer('page2form_submit','page2form_subform') ){ //

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

第一部分接收文章标题、内容和链接,然后使用AJAX从该数据创建文章。使用
wp\u insert\u 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;
    }

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

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

} );
第二部分将图像上传到WordPress gallery,然后将图像附加到文章中,成为其特色图像。对于我正在使用的图像提交,使用包括的
add\u操作('fu\u after\u upload',callback\u函数)
和这个插件

当我尝试在
add\u action()
中使用
$make\u post\u 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;
    }

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

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

} );
这两个文件都在同一个file.php中

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

尝试将此变量传递到匿名函数作用域:

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


全局变量不会在单独的请求之间保留值,因此您可以先返回post ID表单调用并将其与上载的文件一起传递,或者将其存储并访问到
$\u SESSION
数组中。

在调用
add\u action()
之前是否输出任何内容?是,在函数中,它确实创建了post并返回了正确的post ID。尝试将该ID传递到同一PHP文件中的另一个作用域是有问题的。如果在
global…
add\u action
NULL
之间移动
var\u dump()
,这意味着在创建帖子之后,它没有被正确存储。帖子ID被分配给
makeblog_page2form
范围中的变量,但它在离开该范围后不会被存储。有什么想法吗?只要重新阅读你的问题,你是否在一个ajax请求中提交和创建帖子,以及在ajax返回帖子id后上传的图片?这样做是行不通的。您必须将此ID返回到javascript并与上载的文件一起传递,或者将其存储在
$SESSION
数组中。全局变量仅对一个请求有效。