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
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
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;
}
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.
Lea otras preguntas en las etiquetas uploads