Elementor Beiträge Widget mit ACF Beziehungsfeld füllen

Mit dem Beiträge Widget in Elementor kann man schon recht bequem in einer Schleife andere Beiträge, Seiten, Produkte oder Custom Post Types (CPT) ( = Benutzerdefinierte Inhaltstypen) auf einer Seite darstellen. Knifflig wird es dann nur, wenn man die Inhalte von einem Meta-Feld, z.B. einem ACF Beziehungsfeld darstellen möchte.

Problem:

Die Option bietet ACF Beziehung in Beitrags-Widget bietet Elementor nicht.

Lösung:

  1. ACF Beziehungsfeld (zB Feldname “mein_acf_beziehungsfeld“) auf der gewünschten Seite oder dem gewünschten Inhaltstyp einbauen und mit Daten füllen.
  2. In Elementor das Widget “Beiträge” an die gewünschte Stelle ziehen
  3. Einstellungen Elementor: Quelle: -> Inhaltstyp
  4. Abfrage-ID: Eine individuelle ID eingeben, z.B. “acf_relation
  5. In der Vorschau erscheinen nun zunächst alle Inhaltstypen, das ändern wir jetzt.
  6. Speichern und Elementor Editor verlassen
  7. functions.php (Hinweis: Nur am Child Theme arbeiten!) editieren. Folgender Code ändert das WP_Query Objekt von Elementor:
add_action( 'elementor/query/acf_relation', function ( WP_Query $query ) {
   $ids = get_field('mein_acf_beziehungsfeld', get_the_ID());
   $query->set( 'post__in', $ids );
   $query->set( 'orderby', 'post__in' );
} );

Nun sollten die entsprechend ausgewählten Beziehungen dargestellt werden und zwar in der gleichen Reihenfolge wie sie im ACF Beziehungsfeld stehen.

Siehe auch

Weitere Techdoks und Snippets