PluginProbe
Gutenberg / 12.1.0
Gutenberg v12.1.0
23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 12.6.0 7.4.0 All 402 releases
gutenberg / lib / upgrade.php

upgrade.php in Gutenberg 12.1.0, at lib/upgrade.php

66 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Upgrading Gutenberg's database.
4 *
5 * @package gutenberg
6 */
7
8 if ( ! defined( '_GUTENBERG_VERSION_MIGRATION' ) ) {
9 // It's necessary to update this version every time a new migration is needed.
10 define( '_GUTENBERG_VERSION_MIGRATION', '9.8.0' );
11 }
12
13 /**
14 * Migrate Gutenberg's database on upgrade.
15 *
16 * @access private
17 * @internal
18 */
19 function _gutenberg_migrate_database() {
20 // The default value used here is the first version before migrations were added.
21 $gutenberg_installed_version = get_option( 'gutenberg_version_migration', '9.7.0' );
22
23 if ( _GUTENBERG_VERSION_MIGRATION !== $gutenberg_installed_version ) {
24 if ( version_compare( $gutenberg_installed_version, '9.8.0', '<' ) ) {
25 _gutenberg_migrate_remove_fse_drafts();
26 }
27
28 update_option( 'gutenberg_version_migration', _GUTENBERG_VERSION_MIGRATION );
29 }
30 }
31
32 /**
33 * Remove FSE auto drafts and associated terms.
34 *
35 * @access private
36 * @internal
37 */
38 function _gutenberg_migrate_remove_fse_drafts() {
39 // Delete auto-draft templates and template parts.
40 $delete_query = new WP_QUERY(
41 array(
42 'post_status' => array( 'auto-draft' ),
43 'post_type' => array( 'wp_template', 'wp_template_part' ),
44 'posts_per_page' => -1,
45 )
46 );
47 foreach ( $delete_query->get_posts() as $post ) {
48 wp_delete_post( $post->ID, true );
49 }
50
51 // Delete _wp_file_based term.
52 $term = get_term_by( 'name', '_wp_file_based', 'wp_theme' );
53 if ( $term ) {
54 wp_delete_term( $term->term_id, 'wp_theme' );
55 }
56
57 // Delete useless options.
58 delete_option( 'gutenberg_last_synchronize_theme_template_checks' );
59 delete_option( 'gutenberg_last_synchronize_theme_template-part_checks' );
60 }
61
62 // Deletion of the `_wp_file_based` term (in _gutenberg_migrate_remove_fse_drafts) must happen
63 // after its taxonomy (`wp_theme`) is registered. This happens in `gutenberg_register_wp_theme_taxonomy`,
64 // which is hooked into `init` (default priority, i.e. 10).
65 add_action( 'init', '_gutenberg_migrate_database', 20 );
66