Home » Dynamic Content » Flexible Downloads als WordPress Content
tl;dr: Du benötigst eine Lösung, wie du flexibel Downloads für deine Beiträge anbieten kannst? Wenn das händische Anlegen zu mühsam wird aber der Einsatz von einem Plugin wie Download-Manager zur Verwaltung übertrieben ist: hier zeige ich dir eine Lösung mit Elementor Pro, ACF Pro und Dynamic Shortcodes bzw. Dynamic Content for Elementor.
Wenn du für einen Inhaltstyp deiner Website wie Immobilien, technische Produkte oder ähnliches Downloads (zB. PDF-Files, XLS-Files oder auch zip-Archive) anbieten willst kannst du diese natürlich einfach in die Mediathek hochladen und dann die URLs dieser Dateien mit Buttons oder Textlinks aufrufen lassen. Für einige wenige Dateien ist das auch eine gute Lösung. Wenn du eine große Anzahl an Datenblättern o.Ä. anbietest oder Einschränkungen für Benutzergruppen benötigst wirst du vmtl. eine Lösung wählen die genau dieses Funktionen in einem Plugin vereint. Hier beschreibe ich einen Weg der zwischen den beiden Anforderungen liegt. Wir wollen:
Neben einer aktuellen WordPress-Umgebung verwenden wir folgende Tools:
Klingt vielleicht alles auf den ersten Blick ein wenig kompliziert. Aber eine komplexere Dateiverwaltung wie Wiederholfelder (Repeater) brauchen eben auf der Fronstseite auch eine entsprechende Umsetzung.
ACF (hier in der Pro-Version) ist ein sehr beliebtes und weit verbreitetes Tool wenn es darum geht, eigene Felder und Inhaltstypen anzulegen und zu verwalten. Alternativen dazu sind die JET-Engine von Crocoblock oder auch Toolset von OnTheGoSystems (WPML).
Im ersten Schritt muss eine Feldgruppe definiert werden. ACF fasst in diesen Feldgruppen beliebig viele Felder zusammen, die dann darüber bestimmten Inhaltstypen zugeordnet werden. Hier wird die Gruppe Downloadfelder dem Typ Beitrag zugewiesen.
Ein Feld Downloads wird nun mit dem Feldtyp Repeater (Wiederholungsfeld) angelegt. Ein Repeaterfeld ist genau genommen kein Feld sondern wiederum eine Feldgruppe. Innerhalb dieser Feldgruppe Downloads legt man nun jene Felder an, die für jeden einzelnen Downloadeintrag gewünscht sind.
Der Anzeigename (ein Textfeld) dient dazu, einem vom Filenamen (mit seinen Einschränkungen bei Umlauten etc) unabhängigen Namen anzeigen zu können. Das Downloadfile selber ist ein Feld vom Typ File. Die Fileart ist ein Feld vom Typ Select. Die Idee dahinter ist, dass man über dieses Feld zb: Icons anzeigen lassen kann für PDF etc.
Bearbeitet man nun den Inhalt eines Beitrages findet man bei den Meta-Feldern (je nach Einstellung in ACF in der rechten Marginalspalte oder unter dem Beitragsinhalt) die Eingabemöglichkeiten für Downloadfiles. Dazu muss immer eine Row (Zeile) angelegt werden und dann die Daten eingetragen.
Zuerst muss sichergestellt sein, dass unter
Dashboard > Dynamic Content for Elementor > Features | Widgets | Advanced Custom Fields
die für die Anzeige notwendigen Widgets aktiviert sind. In unserem Fall werden wird ACF Fields und ACF Repeater verwendet.
Elementor-typisch obliegt es dem Designer wo und wie das Repeater-Feld eingebunden wird. Oft wird man eine eigene Sektion oder Spalte vorsehen damit auch genug Raum für flexibel viele Zeilen bleibt.
Nun muss man dem ACF-Repeater-Widget sagen, welches Feld es anzeigen soll: in diesem Fall das Feld Downloads und zwar die Daten aus dem Current Post. (Weil wir das Konstrukt ja in einem Single-Post-Template einbauen).
Das Widget hat 3 Anzeige-Modi (Display mode): Subfields (eine Listendarstellung), Dynamic HTML (eine Auflistung die in etwa wie hier beschrieben funktioniert) und Templates.
Wir verwenden die Template-Option und erstellen dafür ein kleines Template, das alle Elemente einer einzelnen Downloadzeile anzeigen lässt.
Dynamic hat hier noch eine Reihe weiterer Optionen wie alternierende Templates etc. vorgesehen, lässt ausser einer Grid- auch Caroussel-, Table-, List-Darstellungen etc. zu. Es gibt auch Filtermöglichkeiten nach Feldinhalten. Es kann also schon noch tiefer gehen…
Jede einzelne Downloadzeile ist aus einem Container mit 3 Subcontaineren aufgebaut. Durch diese auf den ersten Blick ein wenig komplizierte Struktur kann man sehr genau die Spaltenbreiten und Ausrichtungen kontrollieren – schliesslich will man die Elemente ordentlich untereinander ausgerichtet darstellen – unabhängig von der Länder des Anzeigenamens.
Während Icon und Button mit dem File verlinkt sind verwenden wir für Titel und Fileart das ACF Fields Widget. Alternativ dazu kann man die Inhalte auch in anderen Widgets dynamisch anzeigen lassen, zB. dem Text-Editor oder Titel-Widget. Geschmackssache und ev. bei Kleinigkeiten im Design wichtig.
Nun kann man aber nicht einfach beim Button oder dem Icon eine URL angeben, die das gewünschte File aufruft. Wieso? WordPress organisiert Medien in der Mediathek als Inhaltstyp Attachment. Neben dem Speicherpfad des Files werden dort ja auch Alternativtexte, Beschreibungstext etc. gespeichert. Wenn wir also nur die URL zum File selber wollen müssen wir auf einen Dynamic Shortcode zurückgreifen.
Der Link, den wir beim Button als Ziel angeben, wird über die Dynamischen Attribute als Dynamic Shortcode gesetzt. Der Code lautet:
{media:url @id={acf:downloadfile}}
Das ist ein verschachtelter Code. In der Mitte steht das auszulesende Feld, hier {acf_downloadfile}, von diesem benötigen wir die (WordPress) ID, daher @id=, und weil es sich um ein Media-File handelt ist eben der Shortcode {media:url …} gefragt.
Neben URL kann man mit dem Media-Shortcode auch Titel, Alt-Text, Filepfad und bei Bildern auch Breite und Höhe auslesen. Leider aber nicht die Filesize, was recht praktisch wäre.
Will man das Icon oder den Anzeigenamen mit dem File verlinken ist der selbe Shortcode eben dort im Link-Bereich anzugeben.
Das war’s auch schon. Sollte klappen.
Mit den richtigen Tools ist es nicht so kompliziert mehrere Downloads zu einem Post zu organisieren. Herausforderungen sind die Variablen bei der Anzahl, die man durch ein Wiederholungsfeld löst, und die File-Url, die aus der Attachment-Logik von WordPress zu ziehen ist.
Veröffentlicht am: 14. März 2026
Letztes Update: 14. März 2026
Sie sehen gerade einen Platzhalterinhalt von Vimeo. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von YouTube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie müssen den Inhalt von reCAPTCHA laden, um das Formular abzuschicken. Bitte beachten Sie, dass dabei Daten mit Drittanbietern ausgetauscht werden.
Mehr Informationen