Spezieller Upload-Ordner für PDFs in benutzerdefiniertem Post-Typ in WP Multisite


14

Ich muss Uploads in einen bestimmten Ordner für einen benutzerdefinierten Beitragstyp namens "document" nur für PDFs filtern.

Bisher habe ich:

function custom_upload_directory( $args ) {
$base_directory = '/home/xxx/my_uploadfolder';
$base_url = 'http://xxxx/wp-content/uploads/my_uploadfolder';

$id = $_REQUEST['post_id'];
$parent = get_post( $id )->post_parent;
// Check the post-type of the current post

if( "document" == get_post_type( $id ) || "document" == get_post_type( $parent ) ) {
    $args['path'] = $base_directory;
    $args['url']  = $base_url;
    $args['basedir'] = $base_directory;
    $args['baseurl'] = $base_url;

}

return $args;
}
add_filter( 'upload_dir', 'custom_upload_directory' );

Es funktioniert, aber mit einigen Problemen:: Jede Art von Datei wird in my_uploadfolder umgeleitet. Außerdem kann ich diese Dateien dort nicht mehr aus dem WP-Administrator löschen. Kann jemand helfen?

Antworten:



2

Der Grund, warum Sie hier Probleme haben, ist, dass Sie einen universellen Filter anwenden upload_dir. Anstatt dies zu tun, einen bedingten Filter für den Einsatz upload_dirnach dem ersten Prüfung ['mime-type']für application/pdf. Sie müssen den Upload-Vorgang am wp_handle_uploadAktions-Hook abfangen und den Upload-Ordner dort ändern. Was Sie gepostet haben, geht in die richtige Richtung, aber Sie müssen mit den eingehenden $_POSTDaten arbeiten und den Filter dort anwenden, indem Sie nach Upload-Dateien suchen, ['mime-type']die WordPress während des Upload-Vorgangs speichert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.