Text

Examples

Settings

Retrieval and Display

Retrieve Field Value
get_cf( 'movie_writers' )
string 'Bruce Geller, Erik Jendresen, Christopher McQuarrie' (51)
Display Field Value
the_cf( 'movie_writers' )[cf name="movie_writers"]
Bruce Geller, Erik Jendresen, Christopher McQuarrie

Text Area

Examples

Settings

Formatting:
None or convert new lines to <br />.

Retrieval and Display

Retrieve Field Value
get_cf( 'movie_summary' )
string 'Ethan Hunt and the IMF team must track down a terrifying new weapon that threatens all of humanity if it falls into the wrong hands. With control of the future and the fate of the world at stake, a deadly race around the globe begins. Confronted by a myst…' (408)
Display Field Value
the_cf( 'movie_summary' )[cf name="movie_summary"]
Ethan Hunt and the IMF team must track down a terrifying new weapon that threatens all of humanity if it falls into the wrong hands. With control of the future and the fate of the world at stake, a deadly race around the globe begins. Confronted by a mysterious, all-powerful enemy, Ethan is forced to consider that nothing can matter more than the mission -- not even the lives of those he cares about most.

WYSIWYG Editor

Examples

Settings

Formatting:
Default or none (bypass filters).

Retrieval and Display

Retrieve Field Value
get_cf( 'movie_synopsis' )
string '<p>The next-generation Russian submarine Sevastopol employs an advanced AI for testing a new navigation system that uses dead reckoning. The AI tricks the crew into firing a torpedo and then turns the torpedo back on the submarine, sinking it and killing …' (4481)
Display Field Value
the_cf( 'movie_synopsis' )[cf name="movie_synopsis"]

The next-generation Russian submarine Sevastopol employs an advanced AI for testing a new navigation system that uses dead reckoning. The AI tricks the crew into firing a torpedo and then turns the torpedo back on the submarine, sinking it and killing all aboard.

IMF agent Ethan Hunt travels to the Empty Quarter of the Arabian Desert to retrieve half of a cruciform key from disavowed ex-MI6 agent Ilsa Faust, on whom the IMF has placed a bounty. He then infiltrates a meeting of leaders of the U.S. Intelligence Community in Washington, D.C., including CIA Director Eugene Kittridge and Director of National Intelligence Denlinger, to discuss the rogue AI. Calling it the Entity, they recount how it has achieved sentience and infiltrated the major defense, intelligence, and financial networks of the world. World powers compete to obtain the key to protect their national security and control the Entity, though the exact means of controlling it are unknown. Believing the Entity poses too great a threat to humanity, Ethan seeks to destroy it.

He and his teammates Benji Dunn and Luther Stickell travel to Abu Dhabi International Airport to intercept the holder of the other half-key. Ethan evades US agents as well as Gabriel, an Entity liaison and terrorist with ties to Ethan's pre-IMF past, while the half-key is stolen by a professional thief named Grace. Luther identifies a suspicious piece of baggage; Benji finds what appears to be a nuclear explosive, but finds it empty after narrowly defusing it. Ethan pursues Grace to Rome. After a lengthy chase, Grace escapes again, while Ethan reunites with Benji, Luther, and Ilsa. Ilsa informs him that she is involved in this because a group of MI6 agents, her former colleagues, determined that they must prevent the key from falling into British Government hands since their government seeks to control it rather than destroy it.

With Benji and Luther providing support, Ethan and Ilsa infiltrate a party held by the arms dealer Alanna Mitsopolis in Venice, hoping to find who hired Grace and learn of the key's purpose. Grace encounters Gabriel and learns that Alanna hired her to steal the half-key. Ethan unsuccessfully attempts to dissuade a fearful Alanna from selling it. Gabriel reveals that the Entity has infiltrated the party and determined that one of Ethan's allies, either Ilsa or Grace, will die. They all scatter afterward, with Ethan subduing but sparing Gabriel's subordinate, Paris, while Gabriel subdues Grace and seemingly kills Ilsa, devastating Ethan. A remorseful Grace commits to joining the IMF and agrees to impersonate Alanna as they prepare to board the Innsbruck-bound Orient Express, where she will meet with her buyer. Luther leaves for an off-grid location to investigate isolated traces of the Entity in his hard drive, warning Ethan not to kill Gabriel out of vengeance, as only Gabriel knows how to use the key.

On the train, Gabriel kills the engine crew and destroys the throttle and brake. He meets Denlinger, who proposes an alliance between himself and the Entity. Denlinger explains that the Entity was originally an advanced cyber weapon developed by the United States that "overperformed" when it infiltrated the Sevastopol and subsequently went rogue. He reveals that the complete key unlocks the chamber housing the computer of the Sevastopol, which contains the early version of the Entity that can be used to control or destroy it, once and for all. Gabriel kills Denlinger and, suspecting Paris will betray him after Ethan spared her in Venice, attempts to kill her as well. Impersonating Alanna, Grace brings the complete key to Alanna's buyer, revealed to be Kittridge. Though tempted to betray Ethan for $100 million and protection for herself, Grace decides against it, pickpockets the key from Kittridge and flees. Ethan parachutes off a cliff onto the train to save Grace from her pursuers, but Gabriel acquires the key.

Ethan overpowers Gabriel atop the train, but the latter escapes and detonates a bridge ahead. Grace and Ethan detach the locomotive from the rest of the train, which trips a fail safe which saves the passengers. A revived Paris rescues them from falling off the bridge and reveals the key's connection to the Sevastopol. Grace informs Kittridge of her new commitment to the IMF, which he accepts while Ethan flees the train with the complete key, which he had pickpocketed from Gabriel during their skirmish.

File / Media

Examples

Settings

File / Media Type:
Any, image, audio, video, PDF.
Return Value:
File URL or attachment ID.

Retrieval and Display

Retrieve Field Value
By default, get_cf() will return the value set in the field settings. With the 'raw' second argument, get_cf() will always return the attachment/media ID. With the 'url' second argument, get_cf() will always return the URL of the file.
get_cf( 'movie_iconic_scene' )
string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene4.jpeg' (67)
get_cf( 'movie_iconic_scene', 'raw' )
string '175' (3)
get_cf( 'movie_iconic_scene', 'url' )
string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene4.jpeg' (67)
We can target a specific thumbnail size by appending that size to the image_url__ second argument prefix as shown in the example below. You can choose one of the default sizes or a custom one created via a theme or plugin.
get_cf( 'movie_iconic_scene', 'image_url__medium' )
string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene4-300x169.jpeg' (75)
Display Field Value
We can display a specific thumbnail size by appending that size to the image_view__ argument prefix as shown in the example below. You can choose one of the default sizes or a custom one created via a theme or plugin.
the_cf( 'movie_iconic_scene', 'image_view__medium' )[cf name="movie_iconic_scene" output="image_view__medium"]
We can output audio player, video player and PDF viewer with the respective second parameter as shown below for each of the file/media type. The audio and video files need to be in an extension that WordPress supports. e.g. .mp3, .mp4.
the_cf( 'movie_main_soundtrack', 'audio_player' )[cf name="movie_main_soundtrack" output="audio_player"]the_cf( 'movie_clip', 'video_player' )[cf name="movie_clip" output="video_player"]
the_cf( 'movie_screenplay', 'pdf_viewer' )[cf name="movie_screenplay" output="pdf_viewer"]

True / False

Examples

Settings

Retrieval and Display

Retrieve Field Value
Will return boolean true or false by default, but can return string 'Yes' or 'No' by adding a second argument of 'yes_no'.
get_cf( 'movie_has_sequels' )
boolean true
get_cf( 'movie_has_sequels', 'yes_no' )
string 'Yes' (3)
Display Field Value
the_cf( 'movie_has_sequels', 'yes_no' )[cf name="movie_has_sequels" output="yes_no"]
Yes

Radio

Examples

Settings

Layout:
Horizontal or vertical.

Retrieval and Display

Retrieve Field Value
Will return a value-label array of the selected option(s) by default.
get_cf( 'movie_status' )
Array(1)
(
    released => string 'Released' (8)
)
Adding a second argument, either 'values' or 'labels' will return the actual values or labels, comma-separated if more than one option were selected.
get_cf( 'movie_status', 'labels' )
string 'Released' (8)
get_cf( 'movie_status', 'values' )
string 'released' (8)
Display Field Value
The second argument, either 'values' or 'labels', works the same way to display the field value.
the_cf( 'movie_status', 'labels' )[cf name="movie_status" output="labels"]
Released

Select

Examples

Settings

Retrieval and Display

Retrieve Field Value
Will return a value-label array of the selected option(s) by default.
get_cf( 'movie_mpaa_rating' )
Array(1)
(
    pg-13 => string 'PG-13 – Parents Strongly Cautioned' (36)
)
get_cf( 'movie_languages' )
Array(3)
(
    english => string 'English' (7)
    spanish => string 'Spanish' (7)
    french => string 'French' (6)
)
get_cf( 'movie_keywords' )
Array(3)
(
    exciting => string 'Exciting' (8)
    suspenseful => string 'Suspenseful' (11)
    fast_paced => string 'Fast-paced' (10)
)
Adding a second argument, either 'values' or 'labels' will return the actual values or labels, comma-separated if more than one option were selected.
get_cf( 'movie_mpaa_rating', 'labels' )
string 'PG-13 – Parents Strongly Cautioned' (36)
get_cf( 'movie_languages', 'values' )
string 'english, spanish, french' (24)
get_cf( 'movie_keywords', 'labels' )
string 'Exciting, Suspenseful, Fast-paced' (33)
Display Field Value
The second argument, either 'values' or 'labels', works the same way to display the field value.
the_cf( 'movie_mpaa_rating', 'labels' )[cf name="movie_mpaa_rating" output="labels"]
PG-13 – Parents Strongly Cautioned
the_cf( 'movie_languages', 'values' )[cf name="movie_languages" output="values"]
english, spanish, french
the_cf( 'movie_keywords', 'labels' )[cf name="movie_keywords" output="labels"]
Exciting, Suspenseful, Fast-paced

Checkbox

Examples

Settings

Layout:
Horizontal or vertical.

Retrieval and Display

Retrieve Field Value
Will return a value-label array of the selected option(s) by default.
get_cf( 'movie_distribution' )
Array(2)
(
    theatres => string 'Theatrical Release' (18)
    vod => string 'Video on Demand' (15)
)
Adding a second argument, either 'values' or 'labels' will return the actual values or labels, comma-separated if more than one option were selected.
get_cf( 'movie_distribution', 'labels' )
string 'Theatrical Release, Video on Demand' (35)
get_cf( 'movie_distribution', 'values' )
string 'theatres, vod' (13)
Display Field Value
The second argument, either 'values' or 'labels', works the same way to display the field value.
the_cf( 'movie_distribution', 'labels' )[cf name="movie_distribution" output="labels"]
Theatrical Release, Video on Demand

Number

Examples

Settings

Retrieval and Display

Will return/display number without any formatting by default. A second parameter of format__comma, format__dot, format__space or a valid locale code, will return/display a formatted number.
Retrieve Field Value
get_cf( 'movie_revenue' )
integer 522802771
get_cf( 'movie_revenue' )
integer 522802771
get_cf( 'movie_revenue', 'format__comma' )get_cf( 'movie_revenue', 'format__en_US' )
string '522,802,771' (11)
get_cf( 'movie_revenue', 'format__dot' )get_cf( 'movie_revenue', 'format__de_DE' )
string '522.802.771' (11)
get_cf( 'movie_revenue', 'format__space' )get_cf( 'movie_revenue', 'format__fr_FR' )
string '522 802 771' (15)
Display Field Value
the_cf( 'movie_revenue', 'format__comma' )[cf name="movie_revenue" output="format__comma"]
522,802,771

Date

Examples

Settings

Retrieval and Display

Will return/display date in the YYYY-MM-DD format by default. Passing PHP date format as a second parameter will return/display the date in that format.
Retrieve Field Value
get_cf( 'movie_release_date' )
string '2023-07-12' (10)
get_cf( 'movie_release_date', 'F j, Y' )
string 'July 12, 2023' (13)
Display Field Value
the_cf( 'movie_release_date', 'F j, Y' )[cf name="movie_release_date" output="F j, Y"]
July 12, 2023

Color

Examples

Settings

Retrieval and Display

Retrieve Field Value
get_cf( 'movie_color_theme' )
string '#61a5ff' (7)
Display Field Value
the_cf( 'movie_color_theme' )[cf name="movie_color_theme"]
#61a5ff

Relationship

Examples

Settings

Limits:
Define the minimum and / or maximum number of items that should / can be selected.

Retrieval and Display

Retrieve Field Value - Posts Related To
Relationship field has a special function get_cf_related_to() to retrive posts being related to from the current post, i.e. target posts. By default will return an indexed array of post IDs. The following is an example of post IDs of casts for the Mission Impossible movie in our demo movie DB.
get_cf_related_to( 'movie_casts_list' )
Array(6)
(
    0 => string '179' (3)
    1 => string '181' (3)
    2 => string '183' (3)
    3 => string '185' (3)
    4 => string '188' (3)
    5 => string '190' (3)
)
Retrieve Field Value - Posts Related From
You can also query from any of the related posts, for posts it is being related from, i.e. origin posts, with get_cf_related_from(). The following is an example of movie post IDs Tom Cruise is related from in our demo movie DB. Scroll further down to see display output options for these movies.
get_cf_related_from( 'movie_casts_list' )
Array(3)
(
    0 => string '168' (3)
    1 => string '207' (3)
    2 => string '192' (3)
)
Display Field Value - Posts Related To
You can use the_cf_related_to() or the [cf_related_to] shortcode to display target posts. A second argument as shown below enables horizontal or vertical display of the related post titles with / without featured images. All related posts are linked to their permalinks by default.
the_cf_related_to( 'movie_casts_list', 'titles_only_c' )[cf_related_to name="movie_casts_list" output="titles_only_c"]the_cf_related_to( 'movie_casts_list', 'titles_only_v' )[cf_related_to name="movie_casts_list" output="titles_only_v"]the_cf_related_to( 'movie_casts_list', 'image_titles_v' )[cf_related_to name="movie_casts_list" output="image_titles_v"]the_cf_related_to( 'movie_casts_list', 'image_titles_h' )[cf_related_to name="movie_casts_list" output="image_titles_h"]
Display Field Value - Posts Related From
You can use the_cf_related_from() or the [cf_related_from] shortcode to display the origin posts. Similar second arguments as the_cf_related_to() can also be used. The following is an example of movies Tom Cruise is related from in our demo movie DB.
the_cf_related_from( 'movie_casts_list', 'image_titles_v' )[cf_related_from name="movie_casts_list" output="image_titles_v"]the_cf_related_from( 'movie_casts_list', 'image_titles_h' )[cf_related_from name="movie_casts_list" output="image_titles_h"]

Term

Examples

Settings

Limits:
Define the minimum and / or maximum number of terms that should / can be selected.

Retrieval and Display

By default will return an indexed array of term IDs. Add a second argument 'names' to get the term names, or 'names_archive_links' to get the names linked to their archive pages, or 'names_edit_links' to get the names linked to their edit screens.
Retrieve Field Value
get_cf( 'movie_related_terms' )
Array(2)
(
    0 => string '12' (2)
    1 => string '14' (2)
)
get_cf( 'movie_related_terms', 'names' )
string 'Action, Thriller' (16)
get_cf( 'movie_related_terms', 'names_archive_links' )
string '<a href="https://www.wpase.com/genre/action/">Action</a>, <a href="https://www.wpase.com/genre/thriller/">Thriller</a>' (118)
get_cf( 'movie_related_terms', 'names_edit_links' )
string '<a href="">Action</a>, <a href="">Thriller</a>' (46)
Display Field Value
the_cf( 'movie_related_terms', 'names' )[cf name="movie_related_terms" output="names"]
Action, Thriller
the_cf( 'movie_related_terms', 'names_archive_links' )[cf name="movie_related_terms" output="names_archive_links"]the_cf( 'movie_related_terms', 'names_edit_links' )[cf name="movie_related_terms" output="names_edit_links"]

User

Examples

Settings

Limits:
Define the minimum and / or maximum number of users that should / can be selected.

Retrieval and Display

By default will return an indexed array of user IDs. Add one of the following arguments to get more specific info: 'first_names', 'last_names' or 'display_names'. The names will be comma separated if there are more than one related users.
Retrieve Field Value
get_cf( 'movie_related_users' )
Array(1)
(
    0 => string '5' (1)
)
get_cf( 'movie_related_users', 'first_names' )
string 'Lionel' (6)
get_cf( 'movie_related_users', 'last_names' )
string 'Messi' (5)
get_cf( 'movie_related_users', 'display_names' )
string 'Lionel Messi' (12)
Display Field Value
The same arguments can be used to display the field value as well.
the_cf( 'movie_related_users', 'display_names' )[cf name="movie_related_users" output="display_names"]
Lionel Messi

Repeater

Examples

You can drag and drop the data row to change it's order. It will be reflected in the data being returned by get_cf().

Settings

After adding repeater field(s), the field group need to be saved first before adding and then drag-and-dropping sub-fields into it.

Retrieval and Display

Retrieve Field Value
get_cf( 'movie_casts' )
Array(6)
(
    0 => Array(2)
    (
        movie_cast => Array(1)
        (
            0 => string '179' (3)
        )
        movie_role => string 'Ethan Hunt' (10)
    )
    1 => Array(2)
    (
        movie_cast => Array(1)
        (
            0 => string '181' (3)
        )
        movie_role => string 'Grace' (5)
    )
    2 => Array(2)
    (
        movie_cast => Array(1)
        (
            0 => string '183' (3)
        )
        movie_role => string 'Luther Stickell' (15)
    )
    3 => Array(2)
    (
        movie_cast => Array(1)
        (
            0 => string '185' (3)
        )
        movie_role => string 'Benji Dunn' (10)
    )
    4 => Array(2)
    (
        movie_cast => Array(1)
        (
            0 => string '188' (3)
        )
        movie_role => string 'Ilsa Faust' (10)
    )
    5 => Array(2)
    (
        movie_cast => Array(1)
        (
            0 => string '190' (3)
        )
        movie_role => string 'The White Widow' (15)
    )
)
get_cf( 'movie_scenes' )
Array(6)
(
    0 => Array(4)
    (
        movie_scene_image => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene5.jpeg' (67)
        movie_scene_time => string '00:23:05' (8)
        movie_scene_caption => string 'Hustle in traffic' (17)
        movie_scene_casts => Array(2)
        (
            0 => string '179' (3)
            1 => string '181' (3)
        )
    )
    1 => Array(4)
    (
        movie_scene_image => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene8.webp' (67)
        movie_scene_time => string '00:45:12' (8)
        movie_scene_caption => string 'Staring back' (12)
        movie_scene_casts => Array(1)
        (
            0 => string '181' (3)
        )
    )
    2 => Array(4)
    (
        movie_scene_image => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene2.jpeg' (67)
        movie_scene_time => string '01:40:57' (8)
        movie_scene_caption => string 'Fight scene on train' (20)
        movie_scene_casts => Array(1)
        (
            0 => string '179' (3)
        )
    )
    3 => Array(4)
    (
        movie_scene_image => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene7.jpg' (66)
        movie_scene_time => string '01:16:23' (8)
        movie_scene_caption => string 'The nemesis' (11)
        movie_scene_casts => Array(1)
        (
            0 => string '190' (3)
        )
    )
    4 => Array(4)
    (
        movie_scene_image => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene4.jpeg' (67)
        movie_scene_time => string '01:34:00' (8)
        movie_scene_caption => string 'Jump off the cliff on a motorcross' (34)
        movie_scene_casts => Array(1)
        (
            0 => string '179' (3)
        )
    )
    5 => Array(4)
    (
        movie_scene_image => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene6.jpeg' (67)
        movie_scene_time => string '01:40:15' (8)
        movie_scene_caption => string 'Jump!' (5)
        movie_scene_casts => Array(1)
        (
            0 => string '179' (3)
        )
    )
)
get_cf( 'movie_reviews' )
Array(3)
(
    0 => Array(3)
    (
        movie_review_title => string 'Mission: Impossible - Dead Reckoning: Part One' (46)
        movie_review_url => string 'https://www.rogerebert.com/reviews/mission-impossible---dead-reckoning-part-one-2023' (84)
        movie_reviewer => string 'Brian Tallerico' (15)
    )
    1 => Array(3)
    (
        movie_review_title => string 'The Extravagant Treats of “Mission: Impossible—Dead Reckoning Part One”' (77)
        movie_review_url => string 'https://www.newyorker.com/magazine/2023/07/24/mission-impossible-dead-reckoning-part-one-movie-review' (101)
        movie_reviewer => string 'Anthony Lane' (12)
    )
    2 => Array(3)
    (
        movie_review_title => string 'Mission: Impossible – Dead Reckoning Part One review – Tom Cruise is still taking our breath away' (101)
        movie_review_url => string 'https://www.theguardian.com/film/2023/jul/09/mission-impossible-dead-reckoning-part-one-review-tom-cruise-rebecca-ferguson-hayley-atwell-vanessa-kirby' (150)
        movie_reviewer => string 'Mark Kermode' (12)
    )
)
Use the second parameter 'raw' to get the data in a form that allows you to more flexibly work with the returned data. e.g. File / media sub-fields will be returned as their attachment IDs. Please look at the 'movie_scene_image' sub-field below.
get_cf( 'movie_scenes', 'raw' )
Array(6)
(
    0 => Array(4)
    (
        movie_scene_image => string '176' (3)
        movie_scene_time => string '00:23:05' (8)
        movie_scene_caption => string 'Hustle in traffic' (17)
        movie_scene_casts => Array(2)
        (
            0 => string '179' (3)
            1 => string '181' (3)
        )
    )
    1 => Array(4)
    (
        movie_scene_image => string '246' (3)
        movie_scene_time => string '00:45:12' (8)
        movie_scene_caption => string 'Staring back' (12)
        movie_scene_casts => Array(1)
        (
            0 => string '181' (3)
        )
    )
    2 => Array(4)
    (
        movie_scene_image => string '173' (3)
        movie_scene_time => string '01:40:57' (8)
        movie_scene_caption => string 'Fight scene on train' (20)
        movie_scene_casts => Array(1)
        (
            0 => string '179' (3)
        )
    )
    3 => Array(4)
    (
        movie_scene_image => string '247' (3)
        movie_scene_time => string '01:16:23' (8)
        movie_scene_caption => string 'The nemesis' (11)
        movie_scene_casts => Array(1)
        (
            0 => string '190' (3)
        )
    )
    4 => Array(4)
    (
        movie_scene_image => string '175' (3)
        movie_scene_time => string '01:34:00' (8)
        movie_scene_caption => string 'Jump off the cliff on a motorcross' (34)
        movie_scene_casts => Array(1)
        (
            0 => string '179' (3)
        )
    )
    5 => Array(4)
    (
        movie_scene_image => string '226' (3)
        movie_scene_time => string '01:40:15' (8)
        movie_scene_caption => string 'Jump!' (5)
        movie_scene_casts => Array(1)
        (
            0 => string '179' (3)
        )
    )
)
Display Field Value
Repeater fields can hold any number and combination of sub-fields, so, it will require custom coding to display it's values in a way that meets your project's specific requirements. 

Please find an example of how the above repeater fields for Casts, Scenes and Reviews are being displayed for the Mission Impossible movie in the demo Movie DB.
Since we have a 'movie_scene_casts' relationship sub-field in the Scenes repeater field inside the Movies post type, we can do a cf_get_related_from() query from the Casts post type to get the movies, and later, the scenes in which a cast is involved. 

You can for example see this for the Tom Cruise in the demo Movie DB. Tom was the main cast in all the movies, so he appeared in a lot of scenes, unlike for example, Jennifer Connely, who only appeared in one of the scenes in Top Gun.
Tom Cruise
Jennifer Connely
Here's the code used to display the Movies and Scenes section above on a Cast's page:
$cast_id = get_the_ID();
$movies  = get_cf_related_from( 'movie_cast' );

$output = '<div class="movies-and-scenes">';

foreach ( $movies as $movie_id ) {
    
    $output .= '<div class="related-movie-and-scenes">';
    
    // Related movie
    
    $movie_title = get_the_title( $movie_id );
    $movie_poster_url = get_the_post_thumbnail_url( $movie_id, 'medium' );
    $movie_permalink = get_the_permalink( $movie_id );
    
    $output .= '<a href="' . esc_attr( $movie_permalink ) . '" class="related-movie"><img src="' . esc_attr( $movie_poster_url ) . '" class="related-movie-poster" /><span class="related-movie-title">' . esc_html( $movie_title ) . '</span></a>';
    
    // Scenes in the movie
    
    $scenes = get_cf( 'movie_scenes', 'raw', $movie_id );
    
    $scenes_for_this_cast = array();
    
    foreach ( $scenes as $scene ) {
        if ( in_array( $cast_id, $scene['movie_scene_casts'] ) ) {
            $scenes_for_this_cast[] = $scene;
        }
    }
    
    if ( count( $scenes_for_this_cast ) > 0 ) {
        
        $output .= '<div class="movie-cast__scenes">';
        
        foreach ( $scenes_for_this_cast as $cast_scene ) {
            
            $scene_attachment_id = $cast_scene['movie_scene_image'];
            $scene_thumbnail = wp_get_attachment_image_url( $scene_attachment_id, 'medium' );
            $scene_full = wp_get_attachment_image_url( $scene_attachment_id, 'full' );
            $scene_time = $cast_scene['movie_scene_time'];
            $scene_caption = $cast_scene['movie_scene_caption'];
            
            $output .= '<div class="movie-cast__scene">
                      <a href="' . esc_attr( $scene_full ) . '" target="_blank"><img src="' . esc_attr( $scene_thumbnail ) . '" /></a>
                      <div class="movie-cast__scene-info"><span class="movie-cast__scene-time">' . esc_html( $scene_time ) . '</span><span class="movie-cast__scene-caption">' . esc_html( $scene_caption ) . '</span></div>
                    </div>';
            
        }
        
        $output .= '</div>';
        
    } else {
        
        $output .= '<div class="no-movie-scenes">No scenes stored in this database for ' . get_the_title( $cast_id ) . ' in this movie.</div>';
        
    }
    
    $output .= '</div>';
    
}

$output .= '</div>';

echo $output;
 

Tabs and Columns

When you have a lot of fields in a custom field group, grouping them into tabs and organizing fields into rows makes for a more manageable data input form.

Examples

Settings

The tab field when you add it, will have a light blue background to signify that it will group custom fields positioned beneath it into a tab.  
Each field has a "Column Width" settings where you can choose between: full, three quarters, two thirds, half, third and quarter. 

If you want two fields in a row, pick three quarters + quarter, two thirds + third or half + half. If you want three fields in a row, pick third + third + third or half + quarter + quarter, and so forth.

Options Pages

You can create custom admin pages called Options Pages to store various data types using any of the available 17 field types. 

You can then display the field values in any part of your website, not only on posts, pages or CPTs. You can do it using one of the supported page builders, Bricks, Oxygen, Breakdance or Elementor. In other scenarios, you can use the same functions and shortcodes available for the various field types.

Examples

Settings

Retrieval and Display

You can use the same functions and shortcodes available for the various field types when displaying field values from an Options Page.
Retrieve Options Page Field Value
get_cf( 'company_short_description' )
string 'Microsoft enables digital transformation for the era of an intelligent cloud and an intelligent edge. Its mission is to empower every person and every organization on the planet to achieve more.' (194)
get_cf( 'company_logo' )
string 'https://www.wpase.com/wp-content/uploads/2024/03/microsoft_logo.webp' (68)
get_cf( 'company_board_of_directors' )
Array(4)
(
    0 => Array(2)
    (
        company_board_member_name => string 'Reid Hoffman' (12)
        board_member_position => string 'Partner, Greylock Partners' (26)
    )
    1 => Array(2)
    (
        company_board_member_name => string 'Hugh Johnston' (13)
        board_member_position => string 'Senior Executive Vice President and Chief Financial Officer, The Walt Disney Company' (84)
    )
    2 => Array(2)
    (
        company_board_member_name => string 'Teri List' (9)
        board_member_position => string 'Former Executive Vice President and Chief Financial Officer, Gap, Inc.' (70)
    )
    3 => Array(2)
    (
        company_board_member_name => string 'Catherine MacGregor' (19)
        board_member_position => string 'Chief Executive Officer, Engie' (30)
    )
)
Display Options Page Field Value
the_cf( 'company_short_description' )[cf name="company_short_description"]
Microsoft enables digital transformation for the era of an intelligent cloud and an intelligent edge. Its mission is to empower every person and every organization on the planet to achieve more.
the_cf( 'company_logo', 'image_view__medium' )[cf name="company_logo" output="image_view__medium"]

Functions and Shortcodes

get_cf()
Returns the value of a custom field.
get_cf($field_name=false,$output_format='default',$post_id=false)
Parameters
$field_name
string|bool
required
The name of the custom field. If set to false or 'all', and a post ID is provided, this will return values for all custom fields for that post. 
$output_format
string
optional
Leave empty or use 'default' for retrieving field value in a format set in the field settings or in its' default format. Use 'raw' to get the value as stored in the database. Please see the documenation for each field type for special format(s) that maybe available for each.
$post_id
int
optional
In a post, a single template or in a loop, defaults to the current post. Enter a specific post ID to retrieve field value for that post.
Return
mixed
The field value.
Examples
In a post, a single template or in a loop: defaulting to the current post. Assuming it's (currently) the Mission Impossble movie (a custom post type), get values for all fields with:
get_cf()
Array(30)
(
    movie_summary => string 'Ethan Hunt and the IMF team must track down a terrifying new weapon that threatens all of humanity if it falls into the wrong hands. With control of the future and the fate of the world at stake, a deadly race around the globe begins. Confronted by a myst…' (408)
    movie_iconic_scene => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene4.jpeg' (67)
    movie_mpaa_rating => Array(1)
    (
        pg-13 => string 'PG-13 – Parents Strongly Cautioned' (36)
    )
    movie_release_year => integer 2023
    movie_release_date => string '2023-07-12' (10)
    movie_trailer => string 'https://www.youtube.com/watch?v=avz06PDqDbM' (43)
    movie_runtime => string '2h 44m' (6)
    movie_director => string 'Christopher McQuarrie' (21)
    movie_writers => string 'Bruce Geller, Erik Jendresen, Christopher McQuarrie' (51)
    movie_status => Array(1)
    (
        released => string 'Released' (8)
    )
    movie_distribution => Array(2)
    (
        theatres => string 'Theatrical Release' (18)
        vod => string 'Video on Demand' (15)
    )
    movie_synopsis => string '<p>The next-generation Russian submarine Sevastopol employs an advanced AI for testing a new navigation system that uses dead reckoning. The AI tricks the crew into firing a torpedo and then turns the torpedo back on the submarine, sinking it and killing …' (4481)
    movie_gallery => Array(12)
    (
        0 => integer 1046
        1 => integer 1047
        2 => integer 1048
        3 => integer 1056
        4 => integer 1049
        5 => integer 1057
        6 => integer 1050
        7 => integer 1051
        8 => integer 1052
        9 => integer 1055
        10 => integer 1053
        11 => integer 1054
    )
    movie_budget => integer 291000000
    movie_revenue => integer 522802771
    movie_has_sequels => integer 1
    movie_has_won_awards => integer 0
    movie_languages => Array(3)
    (
        english => string 'English' (7)
        spanish => string 'Spanish' (7)
        french => string 'French' (6)
    )
    movie_keywords => Array(3)
    (
        exciting => string 'Exciting' (8)
        suspenseful => string 'Suspenseful' (11)
        fast_paced => string 'Fast-paced' (10)
    )
    movie_imdb_link => string '<a class="cfgroup-hyperlink" href="https://www.imdb.com/title/tt9603212/" target="_blank"><span class="text">More on IMDB</span></a>' (132)
    movie_main_soundtrack => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr_soundtrack.mp3' (69)
    movie_clip => string 'https://www.wpase.com/wp-content/uploads/2023/08/missino-impossible-dead-reckoning-1-trailer-480p-cropped.mp4' (109)
    movie_screenplay => string 'https://www.wpase.com/wp-content/uploads/2023/08/Dead-Reckoning-Augist-2013-10-pages.pdf' (88)
    movie_color_theme => string '#61a5ff' (7)
    movie_related_terms => Array(2)
    (
        0 => string '12' (2)
        1 => string '14' (2)
    )
    movie_related_users => Array(1)
    (
        0 => string '5' (1)
    )
    movie_casts_list => Array(6)
    (
        0 => string '179' (3)
        1 => string '181' (3)
        2 => string '183' (3)
        3 => string '185' (3)
        4 => string '188' (3)
        5 => string '190' (3)
    )
    movie_casts => Array(6)
    (
        0 => Array(2)
        (
            movie_cast => Array(1)
            (
                0 => string '179' (3)
            )
            movie_role => string 'Ethan Hunt' (10)
        )
        1 => Array(2)
        (
            movie_cast => Array(1)
            (
                0 => string '181' (3)
            )
            movie_role => string 'Grace' (5)
        )
        2 => Array(2)
        (
            movie_cast => Array(1)
            (
                0 => string '183' (3)
            )
            movie_role => string 'Luther Stickell' (15)
        )
        3 => Array(2)
        (
            movie_cast => Array(1)
            (
                0 => string '185' (3)
            )
            movie_role => string 'Benji Dunn' (10)
        )
        4 => Array(2)
        (
            movie_cast => Array(1)
            (
                0 => string '188' (3)
            )
            movie_role => string 'Ilsa Faust' (10)
        )
        5 => Array(2)
        (
            movie_cast => Array(1)
            (
                0 => string '190' (3)
            )
            movie_role => string 'The White Widow' (15)
        )
    )
    movie_scenes => Array(6)
    (
        0 => Array(4)
        (
            movie_scene_image => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene5.jpeg' (67)
            movie_scene_time => string '00:23:05' (8)
            movie_scene_caption => string 'Hustle in traffic' (17)
            movie_scene_casts => Array(2)
            (
                0 => string '179' (3)
                1 => string '181' (3)
            )
        )
        1 => Array(4)
        (
            movie_scene_image => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene8.webp' (67)
            movie_scene_time => string '00:45:12' (8)
            movie_scene_caption => string 'Staring back' (12)
            movie_scene_casts => Array(1)
            (
                0 => string '181' (3)
            )
        )
        2 => Array(4)
        (
            movie_scene_image => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene2.jpeg' (67)
            movie_scene_time => string '01:40:57' (8)
            movie_scene_caption => string 'Fight scene on train' (20)
            movie_scene_casts => Array(1)
            (
                0 => string '179' (3)
            )
        )
        3 => Array(4)
        (
            movie_scene_image => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene7.jpg' (66)
            movie_scene_time => string '01:16:23' (8)
            movie_scene_caption => string 'The nemesis' (11)
            movie_scene_casts => Array(1)
            (
                0 => string '190' (3)
            )
        )
        4 => Array(4)
        (
            movie_scene_image => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene4.jpeg' (67)
            movie_scene_time => string '01:34:00' (8)
            movie_scene_caption => string 'Jump off the cliff on a motorcross' (34)
            movie_scene_casts => Array(1)
            (
                0 => string '179' (3)
            )
        )
        5 => Array(4)
        (
            movie_scene_image => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene6.jpeg' (67)
            movie_scene_time => string '01:40:15' (8)
            movie_scene_caption => string 'Jump!' (5)
            movie_scene_casts => Array(1)
            (
                0 => string '179' (3)
            )
        )
    )
    movie_reviews => Array(3)
    (
        0 => Array(3)
        (
            movie_review_title => string 'Mission: Impossible - Dead Reckoning: Part One' (46)
            movie_review_url => string 'https://www.rogerebert.com/reviews/mission-impossible---dead-reckoning-part-one-2023' (84)
            movie_reviewer => string 'Brian Tallerico' (15)
        )
        1 => Array(3)
        (
            movie_review_title => string 'The Extravagant Treats of “Mission: Impossible—Dead Reckoning Part One”' (77)
            movie_review_url => string 'https://www.newyorker.com/magazine/2023/07/24/mission-impossible-dead-reckoning-part-one-movie-review' (101)
            movie_reviewer => string 'Anthony Lane' (12)
        )
        2 => Array(3)
        (
            movie_review_title => string 'Mission: Impossible – Dead Reckoning Part One review – Tom Cruise is still taking our breath away' (101)
            movie_review_url => string 'https://www.theguardian.com/film/2023/jul/09/mission-impossible-dead-reckoning-part-one-review-tom-cruise-rebecca-ferguson-hayley-atwell-vanessa-kirby' (150)
            movie_reviewer => string 'Mark Kermode' (12)
        )
    )
)
In a post, a single template or in a loop: defaulting to the current post. Assuming it's (currently) the Mission Impossble movie (a custom post type), get the movie writers with:
get_cf( 'movie_writers' )
string 'Bruce Geller, Erik Jendresen, Christopher McQuarrie' (51)
Get scenes for the Mission Impossble movie (a custom post type).
get_cf( 'movie_scenes', 'default', 168 )
Array(6)
(
    0 => Array(4)
    (
        movie_scene_image => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene5.jpeg' (67)
        movie_scene_time => string '00:23:05' (8)
        movie_scene_caption => string 'Hustle in traffic' (17)
        movie_scene_casts => Array(2)
        (
            0 => string '179' (3)
            1 => string '181' (3)
        )
    )
    1 => Array(4)
    (
        movie_scene_image => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene8.webp' (67)
        movie_scene_time => string '00:45:12' (8)
        movie_scene_caption => string 'Staring back' (12)
        movie_scene_casts => Array(1)
        (
            0 => string '181' (3)
        )
    )
    2 => Array(4)
    (
        movie_scene_image => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene2.jpeg' (67)
        movie_scene_time => string '01:40:57' (8)
        movie_scene_caption => string 'Fight scene on train' (20)
        movie_scene_casts => Array(1)
        (
            0 => string '179' (3)
        )
    )
    3 => Array(4)
    (
        movie_scene_image => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene7.jpg' (66)
        movie_scene_time => string '01:16:23' (8)
        movie_scene_caption => string 'The nemesis' (11)
        movie_scene_casts => Array(1)
        (
            0 => string '190' (3)
        )
    )
    4 => Array(4)
    (
        movie_scene_image => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene4.jpeg' (67)
        movie_scene_time => string '01:34:00' (8)
        movie_scene_caption => string 'Jump off the cliff on a motorcross' (34)
        movie_scene_casts => Array(1)
        (
            0 => string '179' (3)
        )
    )
    5 => Array(4)
    (
        movie_scene_image => string 'https://www.wpase.com/wp-content/uploads/2023/08/mi_dr1_scene6.jpeg' (67)
        movie_scene_time => string '01:40:15' (8)
        movie_scene_caption => string 'Jump!' (5)
        movie_scene_casts => Array(1)
        (
            0 => string '179' (3)
        )
    )
)
Retrieve raw values for all custom fields in the Mission Impossble movie (custom post type).
get_cf( 'all', 'raw', 168 )
Array(30)
(
    movie_summary => string 'Ethan Hunt and the IMF team must track down a terrifying new weapon that threatens all of humanity if it falls into the wrong hands. With control of the future and the fate of the world at stake, a deadly race around the globe begins. Confronted by a myst…' (408)
    movie_iconic_scene => string '175' (3)
    movie_mpaa_rating => Array(1)
    (
        0 => string 'pg-13' (5)
    )
    movie_release_year => string '2023' (4)
    movie_release_date => string '2023-07-12' (10)
    movie_trailer => string 'https://www.youtube.com/watch?v=avz06PDqDbM' (43)
    movie_runtime => string '2h 44m' (6)
    movie_director => string 'Christopher McQuarrie' (21)
    movie_writers => string 'Bruce Geller, Erik Jendresen, Christopher McQuarrie' (51)
    movie_status => Array(1)
    (
        0 => string 'released' (8)
    )
    movie_distribution => Array(2)
    (
        0 => string 'theatres' (8)
        1 => string 'vod' (3)
    )
    movie_synopsis => string '<p>The next-generation Russian submarine Sevastopol employs an advanced AI for testing a new navigation system that uses dead reckoning. The AI tricks the crew into firing a torpedo and then turns the torpedo back on the submarine, sinking it and killing …' (4481)
    movie_gallery => string '1046,1047,1048,1056,1049,1057,1050,1051,1052,1055,1053,1054' (59)
    movie_budget => string '291000000' (9)
    movie_revenue => string '522802771' (9)
    movie_has_sequels => string '1' (1)
    movie_has_won_awards => string '0' (1)
    movie_languages => Array(3)
    (
        0 => string 'english' (7)
        1 => string 'spanish' (7)
        2 => string 'french' (6)
    )
    movie_keywords => Array(3)
    (
        0 => string 'exciting' (8)
        1 => string 'suspenseful' (11)
        2 => string 'fast_paced' (10)
    )
    movie_imdb_link => Array(3)
    (
        url => string 'https://www.imdb.com/title/tt9603212/' (37)
        text => string 'More on IMDB' (12)
        target => string '_blank' (6)
    )
    movie_main_soundtrack => string '169' (3)
    movie_clip => string '683' (3)
    movie_screenplay => string '224' (3)
    movie_color_theme => string '#61a5ff' (7)
    movie_related_terms => Array(2)
    (
        0 => string '12' (2)
        1 => string '14' (2)
    )
    movie_related_users => Array(1)
    (
        0 => string '5' (1)
    )
    movie_casts_list => Array(6)
    (
        0 => string '179' (3)
        1 => string '181' (3)
        2 => string '183' (3)
        3 => string '185' (3)
        4 => string '188' (3)
        5 => string '190' (3)
    )
    movie_casts => Array(6)
    (
        0 => Array(2)
        (
            movie_cast => Array(1)
            (
                0 => string '179' (3)
            )
            movie_role => string 'Ethan Hunt' (10)
        )
        1 => Array(2)
        (
            movie_cast => Array(1)
            (
                0 => string '181' (3)
            )
            movie_role => string 'Grace' (5)
        )
        2 => Array(2)
        (
            movie_cast => Array(1)
            (
                0 => string '183' (3)
            )
            movie_role => string 'Luther Stickell' (15)
        )
        3 => Array(2)
        (
            movie_cast => Array(1)
            (
                0 => string '185' (3)
            )
            movie_role => string 'Benji Dunn' (10)
        )
        4 => Array(2)
        (
            movie_cast => Array(1)
            (
                0 => string '188' (3)
            )
            movie_role => string 'Ilsa Faust' (10)
        )
        5 => Array(2)
        (
            movie_cast => Array(1)
            (
                0 => string '190' (3)
            )
            movie_role => string 'The White Widow' (15)
        )
    )
    movie_scenes => Array(6)
    (
        0 => Array(4)
        (
            movie_scene_image => string '176' (3)
            movie_scene_time => string '00:23:05' (8)
            movie_scene_caption => string 'Hustle in traffic' (17)
            movie_scene_casts => Array(2)
            (
                0 => string '179' (3)
                1 => string '181' (3)
            )
        )
        1 => Array(4)
        (
            movie_scene_image => string '246' (3)
            movie_scene_time => string '00:45:12' (8)
            movie_scene_caption => string 'Staring back' (12)
            movie_scene_casts => Array(1)
            (
                0 => string '181' (3)
            )
        )
        2 => Array(4)
        (
            movie_scene_image => string '173' (3)
            movie_scene_time => string '01:40:57' (8)
            movie_scene_caption => string 'Fight scene on train' (20)
            movie_scene_casts => Array(1)
            (
                0 => string '179' (3)
            )
        )
        3 => Array(4)
        (
            movie_scene_image => string '247' (3)
            movie_scene_time => string '01:16:23' (8)
            movie_scene_caption => string 'The nemesis' (11)
            movie_scene_casts => Array(1)
            (
                0 => string '190' (3)
            )
        )
        4 => Array(4)
        (
            movie_scene_image => string '175' (3)
            movie_scene_time => string '01:34:00' (8)
            movie_scene_caption => string 'Jump off the cliff on a motorcross' (34)
            movie_scene_casts => Array(1)
            (
                0 => string '179' (3)
            )
        )
        5 => Array(4)
        (
            movie_scene_image => string '226' (3)
            movie_scene_time => string '01:40:15' (8)
            movie_scene_caption => string 'Jump!' (5)
            movie_scene_casts => Array(1)
            (
                0 => string '179' (3)
            )
        )
    )
    movie_reviews => Array(3)
    (
        0 => Array(3)
        (
            movie_review_title => string 'Mission: Impossible - Dead Reckoning: Part One' (46)
            movie_review_url => string 'https://www.rogerebert.com/reviews/mission-impossible---dead-reckoning-part-one-2023' (84)
            movie_reviewer => string 'Brian Tallerico' (15)
        )
        1 => Array(3)
        (
            movie_review_title => string 'The Extravagant Treats of “Mission: Impossible—Dead Reckoning Part One”' (77)
            movie_review_url => string 'https://www.newyorker.com/magazine/2023/07/24/mission-impossible-dead-reckoning-part-one-movie-review' (101)
            movie_reviewer => string 'Anthony Lane' (12)
        )
        2 => Array(3)
        (
            movie_review_title => string 'Mission: Impossible – Dead Reckoning Part One review – Tom Cruise is still taking our breath away' (101)
            movie_review_url => string 'https://www.theguardian.com/film/2023/jul/09/mission-impossible-dead-reckoning-part-one-review-tom-cruise-rebecca-ferguson-hayley-atwell-vanessa-kirby' (150)
            movie_reviewer => string 'Mark Kermode' (12)
        )
    )
)

the_cf()[cf] shortcode

Display the value of a custom field. the_cf() uses the same parameters as get_cf(), while the [cf] shortcode uses corresponding arguments as shown in the examples below.
Examples
In a post, a single template or in a loop: defaulting to the current post. Assuming it's (currently) the Mission Impossble movie (a custom post type), display the movie writers with:
the_cf( 'movie_writers' )
[cf name="movie_writers"]
Bruce Geller, Erik Jendresen, Christopher McQuarrie
Display the iconic scene of the Mission Impossble movie (a custom post type) in a medium size from anywhere on the site:
the_cf( 'movie_iconic_scene', 'image_view__medium', 168 )
[cf name="movie_iconic_scene" output="image_view__medium" post_id="168"]
Please refer to each custom field type's documentation for more examples specific to each type.
get_cf_related_to()
Returns posts, pages and/or custom post type posts being related to from the current post, i.e. target posts.
get_cf_related_to($field_name=false,$output_format='default',$base_format='raw',$post_id=false)
Parameters
$field_name
string|bool
required
The name of the relationship field. Defaults to false.
$output_format
string
optional
Leave empty or use 'default' for retrieving field value in a format set in $base_format. Or, choose one of the special output format: 'titles_only_c', 'titles_only_v', 'image_titles_v' or 'image_titles_h'. The special format is mainly used to display the returned value using the_cf_related_to(). Please see the Relationship field documentation for further info.
$base_format
string
optional
The base format of relationship data for processing into the output format. Choose between 'raw', 'api' or 'input'. Defaults to 'raw'.
$post_id
int
optional
In a post, a single template or in a loop, defaults to the current post. Enter a specific post ID to retrieve field value for that post.
Return
array
An indexed array of target post IDs.
Examples
We'll use the following 'movie_casts_list' relationship field as an example. This is placed inside a field group for the 'movie' post type, relating to the 'cast' post type.
In a post, a single template or in a loop: defaulting to the current post. Assuming it's (currently) the Mission Impossble movie (a custom post type), get values for all movie casts with:
get_cf_related_to( 'movie_casts_list' )
...which is similar to the following function placed anywhere on the site:
get_cf_related_to( 'movie_casts_list', 'default', 'raw', 168 )
...to retrieve the following data:
Array(6)
(
    0 => string '179' (3)
    1 => string '181' (3)
    2 => string '183' (3)
    3 => string '185' (3)
    4 => string '188' (3)
    5 => string '190' (3)
)

the_cf_related_to()[cf_related_to] shortcode

Display posts, pages and/or custom post type posts being related to from the current post, i.e. target posts. Uses the same parameters as get_cf_related_to(), while the [cf_related_to] shortcode uses corresponding arguments as shown in the examples below.
Examples
In a post, a single template or in a loop: defaulting to the current post. Assuming it's (currently) the Mission Impossble movie (a custom post type), display the movie writers with:
the_cf_related_to( 'movie_casts_list', 'image_titles_v' )
[cf_related_to name="movie_writers" output="image_titles_v"]
...which is similar to the following function or shortcode placed anywhere on the site:
the_cf_related_to( 'movie_casts_list', 'image_titles_v', 'raw', 168 )
[cf_related_to name="movie_writers" output="image_titles_v" base="raw" post_id="168"]
...to display the following data:
Please refer to the Relationship field type's documentation for more output examples.
get_cf_related_from()
Returns posts, pages and/or custom post type posts the current post is being related from, i.e. origin posts.
get_cf_related_from($field_name=false,$output_format='default',$related_from_post_type=false,$related_from_post_status='publish'$field_type='relationship'$post_id=false)
Parameters
$field_name
string|array|bool
required
The name of the relationship field(s) in the origin posts. Accepts string for a single field name, or an array of field names. Defaults to false.
$output_format
string
optional
Leave empty or use 'default' for retrieving field value in a format set in the field settings. Or, choose one of the special output format: 'titles_only_c', 'titles_only_v', 'image_titles_v' or 'image_titles_h'. The special format is mainly used to display the returned value using the_cf_related_from(). Please see the Relationship field documentation for further info.
$related_from_post_type
string|array|bool
optional
The post type of the origin posts. Accepts string for a single post type, or an array of post types. Defaults to false, which will return all post types.
$related_from_post_status
string|array
optional
The post status of the origin posts. Accepts string for a single post status, or an array of post statues. Choose from the supported post statuses'publish', 'future', 'draft', 'pending', 'private', 'trash' or 'auto-draft'. Defaults to 'publish' for published posts.
$field_type
string|array
optional
The field type of the custom field in the origin posts. Accepts string for a single field type, or an array of field types. Defaults to 'relationship'.
$post_id
int
optional
In a post, a single template or in a loop, defaults to the current post. Enter a specific post ID to retrieve field value for that post.
Return
array
An indexed array of origin post IDs.
Examples
We'll use the following 'movie_casts_list' relationship field as an example. This is placed inside a field group for the 'movie' post type, relating to the 'cast' post type.
In a post, a single template or in a loop: defaulting to the current post. Assuming it's (currently) the Tom Cruise cast (a custom post type), get values for all movies it's being related from (origin posts):
get_cf_related_from( 'movie_casts_list' )
...which is similar to the following function placed anywhere on the site:
get_cf_related_from( 'movie_casts_list', 'default', 'movie', 'publish', 'relationship', 179 )
...to retrieve the following data:
Array(3)
(
    0 => string '168' (3)
    1 => string '192' (3)
    2 => string '207' (3)
)

the_cf_related_from()[cf_related_from] shortcode

Display posts, pages and/or custom post type posts being related to from the current post, i.e. target posts. Uses the same parameters as get_cf_related_from(), while the [cf_related_from] shortcode uses corresponding arguments as shown in the examples below.
Examples
In a post, a single template or in a loop: defaulting to the current post. Assuming it's (currently) the Tom Cruise cast (a custom post type), get values for all movies it's being related from (origin posts):
the_cf_related_from( 'movie_casts_list', 'image_titles_v' )
[cf_related_from name="movie_casts_list" output="image_titles_v"]
...which is similar to the following function or shortcode placed anywhere on the site:
the_cf_related_to( 'movie_casts_list', 'image_titles_v', 'movie', 'publish', 'relationship', 179 )
[cf_related_from name="movie_casts_list" output="image_titles_v" post_type="movie" post_status="publish" field_type="relationship" post_id="179"]
...to display the following data:
Please refer to the Relationship field type's documentation for more output examples.

Page Builders

ASE's custom fields are integrated with the following page builders.

Bricks

All field types are fully supported in Bricks Builder. The repeater and relationship fields work great with the Query Loop, and all other field types work with various elements (text, image, video, etc.) and contexts (text, link, image, video, media, loop) as well as the {echo} tag when in use with ASE functions like get_cf().

Breakdance

All field types work in various Breakdance modules in accordance with the expected return types (string, URL, image, video). The repeater field also works nicely to display the sub-fields in a custom layout/design via a Global Block and the Loop Builder

Relationship field support in the Loop Builder on par with support for ACF relationship fields will require the Breakdance team to make changes in their code. Please upvote this feature request if you'd like to see it happen. Meanwhile, you can use Array Query along with get_cf_related_to() like the example below:
$related_post_ids = array();

if ( function_exists( 'get_cf_related_to' ) ) {
    $related_post_ids = get_cf_related_to( 'relationship_field_name' );
}

return ['post__in' => $related_post_ids,
'post_type'=> array( 'post_type_key', 'another_post_type_key' ) ];
Note that post_type_key and another_post_type_key here refers to the relationship target post types.

Oxygen

All field types except for the repeater field works in various Oxygen modules in their respective mode, i.e. returning full content, URL value or the image ID. Repeater field support like how it works with ACF and Meta Box will require code changes by the Oxygen team. Please comment, upvote and support this feature request on GitHub if you'd like to see that implemented in a future release of Oxygen.

Elementor

All field types, except for the repeater field, are supported in various Elementor widgets (text editor, image, video, counter, etc.) according to the type of returned data the widget expects. The text editor widgets is able to display data from all field types, while for example, the image widget is only able to display data from the file field type with the image sub-type. Repeater field support is not implemented yet.
Lifetime License
Available
chevron-up