请参阅下面我用来更改自定义帖子类型的上传目录的过滤器。
我的自定义帖子类型名称是“下载”
我的自定义帖子类型'下载'上传的新目录现在是...... 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;
}
答案 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); ?>