根据主题中的帖子类型不同的上传目录

时间:2012-12-21 作者:Attila

我有很多上传的图像文件和图像大小。因此,最好根据帖子类型将媒体文件组织到文件夹中。我刚读过this tutorial, 但正如我所看到的,它与插件一起工作。如何将其更改为在主题中使用?谢谢

function custom_upload_directory( $args ) {
 
    $id = $_REQUEST[\'post_id\'];
    $parent = get_post( $id )->post_parent;
 
    // Check the post-type of the current post
    if( "post-type" == get_post_type( $id ) || "post-type" == get_post_type( $parent ) ) {
        $args[\'path\'] = plugin_dir_path(__FILE__) . "uploads";
        $args[\'url\']  = plugin_dir_url(__FILE__) . "uploads";
        $args[\'basedir\'] = plugin_dir_path(__FILE__) . "uploads";
        $args[\'baseurl\'] = plugin_dir_url(__FILE__) . "uploads";
    }
    return $args;
}
add_filter( \'upload_dir\', \'custom_upload_directory\' );

1 个回复
最合适的回答,由SO网友:Pontus Abrahamsson 整理而成

如果我没弄错你的问题,你想在你的主题中添加一个为当前post\\u类型添加目录的函数吗?例如:uploads/post\\u type\\u name。如果是这样,这里有一个函数:

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\' );

结束

相关推荐

以编程方式通过URL获取图像并保存在Uploads文件夹中

我参与了从另一个CMS到WordPress的大规模迁移。我们有一个数据库的副本,并且已经解决了如何提取内容并使用wpdb 班然而,有几千张图片,我们想自动拉过来,生成各种大小的图片,然后贴到帖子上,以节省大约一周的工作!有没有办法通过URL从远程站点获取图像并将其保存在我的wp uploads文件夹中?我想这是wp_http 但我对此并不熟悉。一旦我得到图像并保存它,我就可以使用wp_generate_attachment_metadata 创建各种尺寸和wp_insert_attachment 把它贴在