Title: WP_Customize_Manager::establish_loaded_changeset
Published: November 20, 2017
Last modified: April 28, 2025

---

# WP_Customize_Manager::establish_loaded_changeset()

## In this article

 * [Description](https://developer.wordpress.org/reference/classes/WP_Customize_Manager/establish_loaded_changeset/?output_format=md#description)
 * [Source](https://developer.wordpress.org/reference/classes/WP_Customize_Manager/establish_loaded_changeset/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/classes/WP_Customize_Manager/establish_loaded_changeset/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/classes/WP_Customize_Manager/establish_loaded_changeset/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/WP_Customize_Manager/establish_loaded_changeset/?output_format=md#wp--skip-link--target)

Establishes the loaded changeset.

## 󠀁[Description](https://developer.wordpress.org/reference/classes/WP_Customize_Manager/establish_loaded_changeset/?output_format=md#description)󠁿

This method runs right at after_setup_theme and applies the ‘customize_changeset_branching’
filter to determine whether concurrent changesets are allowed. Then if the Customizer
is not initialized with a `changeset_uuid` param, this method will determine which
UUID should be used. If changeset branching is disabled, then the most saved changeset
will be loaded by default. Otherwise, if there are no existing saved changesets 
or if changeset branching is enabled, then a new UUID will be generated.

## 󠀁[Source](https://developer.wordpress.org/reference/classes/WP_Customize_Manager/establish_loaded_changeset/?output_format=md#source)󠁿

    ```php
    public function establish_loaded_changeset() {
    	global $pagenow;

    	if ( empty( $this->_changeset_uuid ) ) {
    		$changeset_uuid = null;

    		if ( ! $this->branching() && $this->is_theme_active() ) {
    			$unpublished_changeset_posts = $this->get_changeset_posts(
    				array(
    					'post_status'               => array_diff( get_post_stati(), array( 'auto-draft', 'publish', 'trash', 'inherit', 'private' ) ),
    					'exclude_restore_dismissed' => false,
    					'author'                    => 'any',
    					'posts_per_page'            => 1,
    					'order'                     => 'DESC',
    					'orderby'                   => 'date',
    				)
    			);
    			$unpublished_changeset_post  = array_shift( $unpublished_changeset_posts );
    			if ( ! empty( $unpublished_changeset_post ) && wp_is_uuid( $unpublished_changeset_post->post_name ) ) {
    				$changeset_uuid = $unpublished_changeset_post->post_name;
    			}
    		}

    		// If no changeset UUID has been set yet, then generate a new one.
    		if ( empty( $changeset_uuid ) ) {
    			$changeset_uuid = wp_generate_uuid4();
    		}

    		$this->_changeset_uuid = $changeset_uuid;
    	}

    	if ( is_admin() && 'customize.php' === $pagenow ) {
    		$this->set_changeset_lock( $this->changeset_post_id() );
    	}
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/class-wp-customize-manager.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-includes/class-wp-customize-manager.php#L624)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/class-wp-customize-manager.php#L624-L658)

## 󠀁[Related](https://developer.wordpress.org/reference/classes/WP_Customize_Manager/establish_loaded_changeset/?output_format=md#related)󠁿

| Uses | Description | 
| [WP_Customize_Manager::set_changeset_lock()](https://developer.wordpress.org/reference/classes/wp_customize_manager/set_changeset_lock/)`wp-includes/class-wp-customize-manager.php` |

Marks the changeset post as being currently edited by the current user.

  | 
| [WP_Customize_Manager::get_changeset_posts()](https://developer.wordpress.org/reference/classes/wp_customize_manager/get_changeset_posts/)`wp-includes/class-wp-customize-manager.php` |

Gets changeset posts.

  | 
| [WP_Customize_Manager::branching()](https://developer.wordpress.org/reference/classes/wp_customize_manager/branching/)`wp-includes/class-wp-customize-manager.php` |

Whether the changeset branching is allowed.

  | 
| [wp_is_uuid()](https://developer.wordpress.org/reference/functions/wp_is_uuid/)`wp-includes/functions.php` |

Validates that a UUID is valid.

  | 
| [WP_Customize_Manager::changeset_post_id()](https://developer.wordpress.org/reference/classes/wp_customize_manager/changeset_post_id/)`wp-includes/class-wp-customize-manager.php` |

Gets the changeset post ID for the loaded changeset.

  | 
| [wp_generate_uuid4()](https://developer.wordpress.org/reference/functions/wp_generate_uuid4/)`wp-includes/functions.php` |

Generates a random UUID (version 4).

  | 
| [WP_Customize_Manager::is_theme_active()](https://developer.wordpress.org/reference/classes/wp_customize_manager/is_theme_active/)`wp-includes/class-wp-customize-manager.php` |

Checks if the current theme is active.

  | 
| [get_post_stati()](https://developer.wordpress.org/reference/functions/get_post_stati/)`wp-includes/post.php` |

Gets a list of post statuses.

  | 
| [is_admin()](https://developer.wordpress.org/reference/functions/is_admin/)`wp-includes/load.php` |

Determines whether the current request is for an administrative interface page.

  |

[Show 4 more](https://developer.wordpress.org/reference/classes/WP_Customize_Manager/establish_loaded_changeset/?output_format=md#)
[Show less](https://developer.wordpress.org/reference/classes/WP_Customize_Manager/establish_loaded_changeset/?output_format=md#)

| Used by | Description | 
| [WP_Customize_Manager::changeset_uuid()](https://developer.wordpress.org/reference/classes/wp_customize_manager/changeset_uuid/)`wp-includes/class-wp-customize-manager.php` |

Gets the changeset UUID.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/WP_Customize_Manager/establish_loaded_changeset/?output_format=md#changelog)󠁿

| Version | Description | 
| [4.9.0](https://developer.wordpress.org/reference/since/4.9.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_customize_manager%2Festablish_loaded_changeset%2F)
before being able to contribute a note or feedback.