当我在子主题函数中使用此代码时,使用wordpress 4.2.2。php根据每个帖子类型更改附件上传目录:
function wpse_16722_type_upload_dir( $args ) {
// Get the current post_id
$id = ( isset( $_REQUEST[\'post_id\'] ) ? $_REQUEST[\'post_id\'] : \'\' );
if( $id ) {
// Set the new path depends on current post_type
$newdir = \'/\' . get_post_type( $id );
$args[\'path\'] = str_replace( $args[\'subdir\'], \'\', $args[\'path\'] ); //remove default subdir
$args[\'url\'] = str_replace( $args[\'subdir\'], \'\', $args[\'url\'] );
$args[\'subdir\'] = $newdir;
$args[\'path\'] .= $newdir;
$args[\'url\'] .= $newdir;
return $args;
}
}
add_filter( \'upload_dir\', \'wpse_16722_type_upload_dir\' );
我得到一张空白页!!函数中没有空行。只有在添加此代码后,问题才会出现。我真的需要它来组织我的上传文件夹,但没有空白页。有什么解决办法吗?
最合适的回答,由SO网友:TheDeadMedic 整理而成
您需要一个更好的功能,您的路径已中断-请参见this answer for reference:
function wpse_16722_type_upload_dir( $args ) {
if ( ! empty( $_REQUEST[\'post_id\'] ) && $post_id = absint( $_REQUEST[\'post_id\'] ) ) {
if ( $post = get_post( $post_id ) ) {
if ( $post->post_type !== \'attachment\' ) {
$args[\'subdir\'] = "/$post->post_type"; // Must be preceded with slash
$args[\'path\'] = $args[\'basedir\'] . $args[\'subdir\'];
$args[\'url\'] = $args[\'baseurl\'] . $args[\'subdir\'];
}
}
}
return $args;
}