在我的 wordpress 插件中,我试图根据帖子名称为我的电影自定义帖子图像设置一个自定义目录。我正在使用 Cmb2 元框。例如,如果帖子是 StarWars,我希望将图像存储在 uploads/movies/starwars/
这个问题已经解决了 100 次,大多数人使用过滤器“upload_dir”来解决这个问题。例如,
add_filter( 'upload_dir', 'my_custom_upload_directory' );
function my_custom_upload_directory( $args ){
$id = $_REQUEST['post_id'];
$parent = get_post( $id )->post_parent;
$title = strtolower( get_the_title( $parent ) );
// Check the post-type of the current post
if( "movies" == get_post_type( $id ) || "movies" == get_post_type( $parent )) {
$args['basedir'] = $args['basedir'] ."/movies/". $title;
$args['baseurl'] = $args['baseurl'] ."/movies/". $title;
}
return $args;
}
无论我将这段代码放在哪里, $_REQUEST['post_id'] 都会导致错误,以及始终为null的 $_GET['post'] 。
因为 global $post 在这里也是空的,所以我不能使用像 define('UPLOADS', ... ) 这样的替代方法
我也尝试使用过滤器'wp_handle_upload_prefilter',但我遇到了与我已经提到的问题相同的问题。
似乎其他人也有同样的问题(https://wordpress.stackexchange.com/questions/366191/how-to-get-the-upcoming-post-id-from-front-end)
有没有人有线索可以帮助我解决这个问题?在此先感谢您的帮助