Options Page

Last updated Nov 18, 2022

Overview

The options page feature provides a set of functions to add extra admin pages to edit ACF fields! Each admin page can be fully customized (see code examples below), and sub admin pages can be created too!

All data saved on an options page is global. This means it is not attached to any particular post or page, but is saved in the wp_options table. This allows the data to be displayed on any page throughout the website (good for header and footer data)!

Requirements

To make use of the options page feature, you will need a copy of ACF PRO (ACF v5), or the options page add-on (ACF v4)

Basic Usage

To create an options page, simply open up your functions.php file and add the following line of code:

functions.php

if( function_exists('acf_add_options_page') ) {
    
    acf_add_options_page();
    
}

Without passing any parameters to this function, the default options page will be added to your wp-admin sidebar.

Advanced Usage

This example demonstrates how to create a customized options page with children.

functions.php

if( function_exists('acf_add_options_page') ) {
    
    acf_add_options_page(array(
        'page_title'    => 'Theme General Settings',
        'menu_title'    => 'Theme Settings',
        'menu_slug'     => 'theme-general-settings',
        'capability'    => 'edit_posts',
        'redirect'      => false
    ));
    
    acf_add_options_sub_page(array(
        'page_title'    => 'Theme Header Settings',
        'menu_title'    => 'Header',
        'parent_slug'   => 'theme-general-settings',
    ));
    
    acf_add_options_sub_page(array(
        'page_title'    => 'Theme Footer Settings',
        'menu_title'    => 'Footer',
        'parent_slug'   => 'theme-general-settings',
    ));
    
}

Template Usage

All the API functions can be used with the “Options Page’s” fields. However, a second parameter is required to target the options page. This is similar to passing through a $post_id to target a specific post object. This example demonstrates how to load a value from an options page. Continue reading: Get values from an options page

<?php the_field('header_title', 'option'); ?>

Notes

The ACF v4 Options Page add-on will automatically add the default options page, however, this is not the case in ACF PRO. If working with ACF PRO, you will need to add the default options page (if required) manually using the code above.

All functions mentioned above must be used before the action admin_menu (priority 99) as this is when the options pages are added to WordPress.

Related