it-swarm.com.de

Wie registriere ich per FTP hochgeladene Bilder in der Mediathek?

Ich verwende meine eigene upload.php-Datei, um Bilder hochzuladen zu:

$upload_dir = wp_upload_dir();
$targetDir = $upload_dir['path'].'/';

Mit dieser Ausnahme funktioniert es so, wie es sein sollte, dass Bilder, die zu uploads/2012/08/ hochgeladen wurden, nicht in Media Library angezeigt werden. Gibt es eine Funktion, um sie dort und in der WP-Datenbank zu "registrieren"?

3
Paul

Dies liegt daran, dass Sie sie nicht als Medientyp registrieren. Jeder Upload ist ein WordPress-Beitrag vom Typ attachment.

Zu Beginn wäre es ungefähr so:

$file_name = 'Some Name';
$file_path = '/path/to/uploads/2012/08/04/newfile.jpg';
$file_url = 'http://url/to/uploads/2012/08/04/newfile.jpg';
$wp_filetype = wp_check_filetype($file, null);
$attachment = array(
    'guid'           => $file_url,
    'post_mime_type' => $wp_filetype['type'],
    'post_title'     => $file_name,
    'post_status'    => 'inherit',
    'post_date'      => date('Y-m-d H:i:s')
);
$attachment_id = wp_insert_attachment($attachment, $file_path);
$attachment_data = wp_generate_attachment_metadata($attachment_id, $file_path);
wp_update_attachment_metadata($attachment_id, $attachment_data);

Dadurch sollte ein Eintrag in Ihrem Medienbedienfeld erstellt und das Bild in alle Größen konvertiert werden, die Sie in Ihrem Thema verwenden.

Eine gute Option für Sie ist, die obige Prozedur in Ihren upload.php einzufügen. Dazu müssten Sie auch die für WordPress erforderlichen Dateien einbinden. Andernfalls müssten Sie WordPress anweisen, dies irgendwie auszuführen, möglicherweise durch eine $_REQUEST-Abfrage oder durch einen Cron-Job.

6
vmassuchetto

Ich denke, Sie sollten anfangen, in media_handle_upload function zu graben. Die Beschreibung ist im Codex vage, also versuche zu verstehen, dass es sich um Code handelt.

Sie können diese Funktion verwenden, um sogar Uploads für Sie durchzuführen, oder Sie können einige Teile des Codes abrufen, um sie in Ihren eigenen Code zu integrieren.

0
nvartolomei