Diese Webseite befindet sich derzeit im Aufbau !

Eine bestimmte Einstellung / Eigenschaft eines ACF Blocks erhalten

Dank der glorreichen Arbeit von Elliot Condon, dem Autor von Advanced Custom Fields Pro, können wir neue Gutenberg Blöcke für WordPress ganz einfach mit Hilfe von PHP und ganz ohne ReactJS Kenntnisse hinzufügen.

In bestimmten Anwendungsfällen, ist es praktisch eine bestimmte Eigenschaft bzw. den Optionswert eines ACF Blocks abzufragen, um diesen für eine bestimmte Template-Bedingung in unserem Theme oder Plugin zu nutzen.

Wie kann ich auf ACF Block Eigenschaften zugreifen?

ACF speichert alle Block-Daten ebenfalls im post_content einer Seite. Mit der WordPress-Funktion parse_blocks( $post->post_content ) können wir darauf ganz einfach zugreifen. Wenn wir dabei speziell die Daten eines ACF Blocks ansteuern wollen, müssen wir im Inhalt auf die Array-Werte $block['blockName']['attrs']['data'] zurückgreifen.

Im Beispiel eines wphave Divider Blocks, welcher ebenfalls mit ACF Pro erstellt wurde, würden wir folgendes Array als Resultat erhalten:

Doch wie können wir speziell auf nur eine bestimmte ACF Block Eigenschaft zugreifen? Zum Beispiel würden wir im oberen Anwendungsfall gern die definierte Höhe des Divider Blocks wissen, welche vom Benutzer individuell eingestellt werden kann.

Für dieses Beispiel ist die folgende Helper-Funktion sehr hilfreich. Denn sie erlaubt es uns einen Blocknamen und einen bestimmten Optionswert zu benennen. Das würde in diesem Fall dann so aussehen get_acf_block_setting( 'acf/divider', 'divider_height' ), indem wir Name und Wert an die Funktion übergeben.

Der Blockname entspricht dem eindeutigen ACF Blocknamen acf/divider und der Optionsname divider_height entspricht dabei einem ACF Block Feld, welches wir in den Templates mit get_field('divider_height') oder get_sub_field('divider_height') aufrufen können.

Wie wenden wir die Funktion an?

Das folgende Beispiel zeigt dir wie sich die obere Funktion innerhalb deines Themes oder Plugins anwenden lässt, um auf Grundlage bestimmter ACF Block Eigenschaften, neue Bedingungen in deinen Templates zu schaffen.