Como salvar arquivos de mídia em “http://example.com/custom_folder” para uma página específica

4

Quero fazer upload de imagens em uma pasta específica, como http://example.com/custom_folder .

Nota: não em http://example.com/wp-content/uploads/custom_folder/image1.jpg

    
por Kaizur 01.02.2016 / 08:20

3 respostas

1

Tente isso

add_filter('upload_dir', 'upload_image_specific_calback');
function upload_image_specific_calback( $param ){

    //$_GET['post'] which is your target post like 10 is post id.
    //After click update button.
    if(isset($_GET['post'])){
        if($_GET['post'] == 10){
            $param = array(
            'path' => get_home_path().'logos',
            'url' => home_url().'/logos',
            'subdir' => '',
            'basedir' => get_home_path(),
            'baseurl' => home_url(),
            'error' => false
            ); 
        }
    }

    //$_POST['post_id'] which is your target post like 10 is post id.
    //instant upload time before save
    if(isset($_POST['post_id'])){ 
        if($_POST['post_id'] == 10) {
            $param = array(
            'path' => get_home_path().'logos',
            'url' => home_url().'/logos',
            'subdir' => '',
            'basedir' => get_home_path(),
            'baseurl' => home_url(),
            'error' => false
            );
        }   
    }

    error_log("path={$param['path']}");  
    error_log("url={$param['url']}");
    error_log("subdir={$param['subdir']}");
    error_log("basedir={$param['basedir']}");
    error_log("baseurl={$param['baseurl']}");
    error_log("error={$param['error']}"); 
    return $param;
}
    
por Jakir Hossain 04.02.2016 / 07:27
1

O filtro que você deseja usar é upload_dir . Verifique se a chave post_id na matriz global $_REQUEST super é igual ao ID da página para o qual você deseja limitar. Em seguida, altere o diretório de upload de acordo.

no código:

add_filter( 'upload_dir', 'my_uploads_dir' );

function my_uploads_dir( $param ){

    // change this to the ID of your page
    $post_id = 135;

    // skips all uploads not associated with your page
    if ( empty( $_REQUEST['post_id'] ) || $_REQUEST['post_id'] != $post_id ) {
        return $param;
    }

    // set the name of your custom dir relative to WP root
    $mydir = 'awesome';

    $param['path'] = $param['basedir'] = ABSPATH . $mydir;
    $param['url']  = $param['baseurl'] = site_url('/') . $mydir;

    // ignore date-based sorting
    $param['subdir'] = '';

    return $param;
}

Onde $mydir corresponde ao seu diretório personalizado na raiz de instalação do WordPress.

    
por Jan Beck 02.02.2016 / 22:09
0

Adicione isto ao seu arquivo wp-config.php

define( 'UPLOADS', 'custom_folder' );

E certifique-se de adicionar este código antes disso.

require_once( ABSPATH.’wp-settings.php’ );

Para mais informações, você pode conferir aqui enlace

Obrigado

    
por Aftab 02.02.2016 / 08:14

Tags