Cómo guardar archivos de medios en "http://example.com/custom_folder" para una página específica

4

Quiero cargar imágenes en una carpeta específica como http://example.com/custom_folder .

Nota: no en http://example.com/wp-content/uploads/custom_folder/image1.jpg

    
pregunta Kaizur 01.02.2016 - 08:20

3 respuestas

1

Prueba esto

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;
}
    
respondido por el Jakir Hossain 04.02.2016 - 07:27
1

El filtro que desea utilizar es upload_dir . Verifique que la clave post_id en la matriz súper global $_REQUEST sea igual a la ID de la página para la que desea limitarlo. A continuación, cambie el directorio de subidas en consecuencia.

En el 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;
}

Donde $mydir corresponde a su directorio personalizado en la raíz de instalación de WordPress.

    
respondido por el Jan Beck 02.02.2016 - 22:09
0

Agregue esto en su archivo wp-config.php

define( 'UPLOADS', 'custom_folder' );

Y asegúrese de agregar este código antes de eso.

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

Para más información puedes consultar aquí. enlace

Gracias

    
respondido por el Aftab 02.02.2016 - 08:14

Lea otras preguntas en las etiquetas