WordPress中的PHP全局变量未返回预期值
我正在制作一个由两部分组成的表单,允许用户在WordPress上创建帖子 第一部分接收文章标题、内容和链接,然后使用AJAX从该数据创建文章。使用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') ){ //
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
数组中。全局变量仅对一个请求有效。