尝试更改上载目录时出现空白页面

时间:2015-05-16 作者:nisr

当我在子主题函数中使用此代码时,使用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\' );
我得到一张空白页!!函数中没有空行。只有在添加此代码后,问题才会出现。我真的需要它来组织我的上传文件夹,但没有空白页。有什么解决办法吗?

1 个回复
最合适的回答,由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;
}

结束