wake-up-neo.net

Unterschiedliches Upload-Verzeichnis basierend auf dem Beitragstyp in einem Thema

Ich habe viele Bilddateien und Bildgrößen hochgeladen. Es ist daher besser, Mediendateien nach Beitragstyp in Ordnern zu organisieren. Ich habe gerade dieses Tutorial gelesen, aber wie ich sehe, funktioniert es mit Plugins. Wie kann ich dies ändern, um es in einem Thema zu verwenden? Vielen Dank.

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' );
5
user9909

Wenn ich Ihre Frage richtig verstehe, möchten Sie eine Funktion in Ihrem Thema, die Verzeichnisse für den aktuellen post_type hinzufügt? wie: uploads/post_type_name. wenn ja hier ist eine funktion dafür:

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