Bilder und Medien gesondert speichern

Zum Speichern von Bildern in gesonderte Ordner, damit diese nicht direkt über die Mediathek abrufbar sind, oder ein gesondertes Medien-Plugin diese verwaltet, kann der Import mit einer Filterfunktion angepasst werden.

Das ist nur in seltenen Fällen nötig, i. d. R. sollten die WordPress typischen Ordner verwendet werden!

Im Beispiel werden die Bilder in wp-content/uploads/immobilien gespeichert:


/**
 * [immonex OpenImmo2WP] Aktuellen Immobilien-Bild-/Dateianhang beim Import
 * für die weitere Verarbeitung merken.
 */
function mysite_remember_current_import_attachment( $file ) {
  global $immonex_current_import_attachment;
 
  if ( false !== strpos( $file['tmp_name'], 'immonex-openimmo-import' ) ) {
    $immonex_current_import_attachment = $file['tmp_name'];
  } else {
    $immonex_current_import_attachment = false;
  }
 
  return $file;
}
add_filter( 'wp_handle_sideload_prefilter', 'mysite_remember_current_import_attachment' );
 
/**
 * [immonex OpenImmo2WP] Upload-Ordner für Immobilien-Bild-/Dateianhänge beim
 * Import dynamisch anpassen (.../wp-content/uploads/immobilien).
 */
function mysite_maybe_set_upload_dir( $uploads ) {
  global $immonex_current_import_attachment;
 
  if ( empty( $immonex_current_import_attachment ) ) {
    return $uploads;
  }
 
  $uploads['subdir'] = DIRECTORY_SEPARATOR . 'immobilien';
  $uploads['path']   = $uploads['basedir'] . $uploads['subdir'];
  $uploads['url']    = $uploads['baseurl'] . $uploads['subdir'];
 
  $immonex_current_import_attachment = false;
 
  return $uploads;
}
add_filter( 'upload_dir', 'mysite_maybe_set_upload_dir' );