我正在处理一个2部分表单,允许用户在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
} );
这两个都在同一个文件中。
如果不清楚,请告诉我。感谢。
答案 0 :(得分:1)
尝试将此变量传递给匿名函数范围:
global $make_post_id;
add_action( 'fu_after_upload', function( $attachment_ids ) use ($make_post_id){
var_dump($make_post_id);
});
全局变量不会在单独的请求之间保留值,因此您可以在第一次调用时返回帖子ID,并将其与上传的文件一起传递,或者在$_SESSION
数组中存储和访问它。