我正在制作一个由两部分组成的表单,以允许用户在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图库,然后将图像附加到帖子中,使其成为其特色图像。对于图像提交,我正在使用前端上传器,并将包含的add_action('fu_after_upload', callback_function)
与此插件一起使用。
当我尝试在add_action()
中使用$make_post_id
全局来附加图像时,我遇到了问题,但没有任何返回。
add_action( 'fu_after_upload', function( $attachment_ids ) {
global $make_post_id;
var_dump($make_post_id); // no return value
} );
这两者都在同一个文件中.php。
如果这还不够清楚,请告诉我。谢谢。
尝试将此变量传递给匿名函数范围:
global $make_post_id;
add_action( 'fu_after_upload', function( $attachment_ids ) use ($make_post_id){
var_dump($make_post_id);
});
全局变量不会在单独的请求之间保留值,因此您可以从第一次调用返回 post ID 并将其与上传的文件一起传递,或者将其存储在数组$_SESSION
访问。