Beim Verwalten einer WordPress-Website können Sie auf Situationen stoßen, in denen Sie mehrere Beiträge auf einmal löschen müssen. WordPress löscht jedoch nicht automatisch Anhänge oder hervorgehobene Bilder, die mit diesen Beiträgen verknüpft sind. Dies kann zu unnötigem Durcheinander in Ihrer Mediathek und Speicherplatznutzung führen.
In diesem Artikel zeigen wir Ihnen, wie Sie Anhänge und hervorgehobene Bilder automatisch löschen können, wenn Sie Beiträge in WordPress mit einem einfachen Code-Snippet löschen.
Das Problem verstehen
Standardmäßig bleiben beim Löschen eines Beitrags in WordPress dessen Anhänge (wie Bilder, PDFs oder andere Medien) und hervorgehobene Bilder in der Mediathek. Dies kann problematisch sein bei groß angelegten Bereinigungen oder wenn Sie sicherstellen möchten, dass alle zugehörigen Daten zusammen mit dem Beitrag entfernt werden.
Die Lösung
Um dies zu beheben, können Sie Ihrer WordPress-Seite eine benutzerdefinierte Funktion hinzufügen, die automatisch alle Anhänge und das hervorgehobene Bild löscht, wann immer ein Beitrag gelöscht wird.
Schritt-für-Schritt-Anleitung
- Öffnen Sie Ihr WordPress-Theme-Verzeichnis und suchen Sie die Datei
functions.php. Alternativ können Sie ein benutzerdefiniertes Plugin für diesen Code erstellen. - Fügen Sie das folgende Code-Snippet in die Datei ein:
function delete_post_attachments($post_id) {
// Überprüfen, ob das gelöschte Element ein Beitrag ist
if (get_post_type($post_id) !== 'post') {
return;
}
// Alle mit dem Beitrag verknüpften Anhänge abrufen
$attachments = get_attached_media('', $post_id);
foreach ($attachments as $attachment) {
wp_delete_attachment($attachment->ID, true);
}
// Das hervorgehobene Bild des Beitrags abrufen und löschen
$featured_image_id = get_post_thumbnail_id($post_id);
if ($featured_image_id) {
wp_delete_attachment($featured_image_id, true);
}
}
add_action('before_delete_post', 'delete_post_attachments');
Diese Funktion verwendet den before_delete_post-Hook, um jedes Mal ausgeführt zu werden, wenn ein Beitrag gelöscht wird. Sie entfernt:
- Alle mit dem Beitrag verknüpften Medienanhänge.
- Das hervorgehobene Bild des Beitrags (falls festgelegt).
Wie es funktioniert
Die Funktion überprüft, ob das gelöschte Element ein Beitrag ist. Wenn ja, ruft sie alle mit dem Beitrag verknüpften Anhänge mit get_attached_media() ab und löscht sie mit wp_delete_attachment(). Zusätzlich entfernt sie das hervorgehobene Bild mit get_post_thumbnail_id().
Dinge, die zu beachten sind
- Diese Lösung funktioniert speziell für Beiträge. Wenn Sie andere Beitragstypen einbeziehen möchten, können Sie die Bedingung in der Funktion anpassen.
- Stellen Sie sicher, dass Sie diese Funktionalität in einer Staging-Umgebung testen, bevor Sie sie auf einer Live-Site anwenden.
- Sichern Sie Ihre Datenbank und Dateien, um versehentlichen Datenverlust zu vermeiden.
Fazit
Mit diesem einfachen Code-Snippet können Sie Ihren Beitragsverwaltungsprozess optimieren und sicherstellen, dass keine unnötigen Anhänge oder hervorgehobenen Bilder zurückbleiben, wenn Beiträge gelöscht werden. Dies ist besonders nützlich für Massenlöschungen oder groß angelegte Website-Bereinigungen.
Wir hoffen, dass Ihnen dieser Leitfaden hilft, Ihre WordPress-Seite organisiert und effizient zu halten. Wenn Sie Fragen haben oder weitere Unterstützung benötigen, zögern Sie nicht, uns zu kontaktieren!