自定义上传目录也可以更改附件元

时间:2012-01-05 17:28:35

标签: wordpress

请参阅下面我用来更改自定义帖子类型的上传目录的过滤器。

我的自定义帖子类型名称是“下载”

我的自定义帖子类型'下载'上传的新目录现在是...... wp-content / downloads /

问题在于,我的图像缩略图丢失了,因为附件元数据正在寻找原始目录中的缩略图 wp-content / uploads /

如何调整过滤器或解决问题,以便此自定义帖子类型的附件数据仅使用新目录 wp-content / downloads /

感谢任何建议或帮助。

约什

add_filter( 'upload_dir', 'my_custom_upload_dir' );
function my_custom_upload_dir( $default_dir ) {

    if ( ! isset( $_POST['post_id'] ) || $_POST['post_id'] < 0 )
    return $default_dir;
    if ( get_post_type( $_POST['post_id'] ) != 'download' )
    return $default_dir;

    $dir = WP_CONTENT_DIR . '/downloads';
    $url = WP_CONTENT_URL . '/downloads';

    $bdir = $dir;
    $burl = $url;
    $subdir = '';

    if ( get_option( 'uploads_use_yearmonth_folders' ) ) {

        $time = current_time( 'mysql' );
        $y = substr( $time, 0, 4 );
        $m = substr( $time, 5, 2 );
        $subdir = "/$y/$m";

    }   

    $dir .= $subdir;
    $url .= $subdir;

    $custom_dir = array( 

        'path'    => $dir,
        'url'     => $url, 
        'subdir'  => $subdir, 
        'basedir' => $bdir, 
        'baseurl' => $burl,
        'error'   => false, 

    );

    return $custom_dir;

}

1 个答案:

答案 0 :(得分:0)

您可以制作自定义的帖子类型模板,并在这些代码中自定义获取附件功能 http://codex.wordpress.org/Post_Type_Templates

此自定义代码可以查找post_meta键:_wp_attached_file。

<?php $attachment_file = get_post_meta($current_post_id, '_wp_attached_file', false); ?>

http://codex.wordpress.org/Function_Reference/get_post_meta