Skip to content

Commit

Permalink
Make new WordPress installations use blocks in widget areas instead o…
Browse files Browse the repository at this point in the history
…f widgets

Modifies `wp_install_defaults()` so that when you install a new WordPress site you
have block in your widget areas, not widgets.

Fixes #53324.
Props isabel_brison, hellofromtonya, andraganescu.


git-svn-id: https://develop.svn.wordpress.org/trunk@51088 602fd350-edb4-49c9-b593-d223f7449a82
  • Loading branch information
noisysocks committed Jun 8, 2021
1 parent 880a308 commit 8add05f
Show file tree
Hide file tree
Showing 11 changed files with 262 additions and 129 deletions.
70 changes: 12 additions & 58 deletions src/wp-admin/includes/upgrade.php
Original file line number Diff line number Diff line change
Expand Up @@ -403,59 +403,13 @@ function wp_install_defaults( $user_id ) {

// Set up default widgets for default theme.
update_option(
'widget_search',
'widget_block',
array(
2 => array( 'title' => '' ),
'_multiwidget' => 1,
)
);
update_option(
'widget_recent-posts',
array(
2 => array(
'title' => '',
'number' => 5,
),
'_multiwidget' => 1,
)
);
update_option(
'widget_recent-comments',
array(
2 => array(
'title' => '',
'number' => 5,
),
'_multiwidget' => 1,
)
);
update_option(
'widget_archives',
array(
2 => array(
'title' => '',
'count' => 0,
'dropdown' => 0,
),
'_multiwidget' => 1,
)
);
update_option(
'widget_categories',
array(
2 => array(
'title' => '',
'count' => 0,
'hierarchical' => 0,
'dropdown' => 0,
),
'_multiwidget' => 1,
)
);
update_option(
'widget_meta',
array(
2 => array( 'title' => '' ),
2 => array( 'content' => '<!-- wp:search /-->' ),
3 => array( 'content' => '<!-- wp:group --><div class="wp-block-group"><!-- wp:heading --><h2>' . __( 'Recent Posts' ) . '</h2><!-- /wp:heading --><!-- wp:latest-posts /--></div><!-- /wp:group -->' ),
4 => array( 'content' => '<!-- wp:group --><div class="wp-block-group"><!-- wp:heading --><h2>' . __( 'Recent Comments' ) . '</h2><!-- /wp:heading --><!-- wp:latest-comments {"displayAvatar":false,"displayDate":false,"displayExcerpt":false} /--></div><!-- /wp:group -->' ),
5 => array( 'content' => '<!-- wp:group --><div class="wp-block-group"><!-- wp:heading --><h2>' . __( 'Archives' ) . '</h2><!-- /wp:heading --><!-- wp:archives /--></div><!-- /wp:group -->' ),
6 => array( 'content' => '<!-- wp:group --><div class="wp-block-group"><!-- wp:heading --><h2>' . __( 'Categories' ) . '</h2><!-- /wp:heading --><!-- wp:categories /--></div><!-- /wp:group -->' ),
'_multiwidget' => 1,
)
);
Expand All @@ -464,18 +418,18 @@ function wp_install_defaults( $user_id ) {
array(
'wp_inactive_widgets' => array(),
'sidebar-1' => array(
0 => 'search-2',
1 => 'recent-posts-2',
2 => 'recent-comments-2',
0 => 'block-2',
1 => 'block-3',
2 => 'block-4',
),
'sidebar-2' => array(
0 => 'archives-2',
1 => 'categories-2',
2 => 'meta-2',
0 => 'block-5',
1 => 'block-6',
),
'array_version' => 3,
)
);

if ( ! is_multisite() ) {
update_user_meta( $user_id, 'show_welcome_panel', 1 );
} elseif ( ! is_super_admin( $user_id ) && ! metadata_exists( 'user', $user_id, 'show_welcome_panel' ) ) {
Expand Down
52 changes: 50 additions & 2 deletions src/wp-content/themes/twentytwentyone/assets/css/ie.css
Original file line number Diff line number Diff line change
Expand Up @@ -7360,12 +7360,60 @@ h1.page-title {
clear: both;
}

.widget-title {
font-size: 1.125rem;
.widget h1 {
font-weight: 700;
line-height: 1.4;
}

.widget h2 {
font-weight: 700;
line-height: 1.4;
}

.widget h3 {
font-weight: 700;
line-height: 1.4;
}

.widget h4 {
font-weight: 700;
line-height: 1.4;
}

.widget h5 {
font-weight: 700;
line-height: 1.4;
}

.widget h6 {
font-weight: 700;
line-height: 1.4;
}

.widget h1 {
font-size: 1.25rem;
}

.widget h2 {
font-size: 1.125rem;
}

.widget h3 {
font-size: 1rem;
}

.widget h4 {
font-size: 1rem;
}

.widget h5 {
font-size: 1rem;
}

.widget h6 {
font-size: 1rem;
}

.search-form {
display: flex;
flex-wrap: wrap;
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,41 @@
}
}

.widget-title {
font-size: var(--global--font-size-sm);
font-weight: var(--widget--font-weight-title);
line-height: var(--widget--line-height-title);
.widget {

h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: var(--widget--font-weight-title);
line-height: var(--widget--line-height-title);
}

h1 {
font-size: var(--global--font-size-md);
}

h2 {
font-size: var(--global--font-size-sm);
}

h3 {
font-size: var(--global--font-size-xs);
}

h4 {
font-size: var(--global--font-size-xs);
}

h5 {
font-size: var(--global--font-size-xs);
}

h6 {
font-size: var(--global--font-size-xs);
}
}

// Search widget styles
Expand Down
32 changes: 30 additions & 2 deletions src/wp-content/themes/twentytwentyone/style-rtl.css
Original file line number Diff line number Diff line change
Expand Up @@ -5444,12 +5444,40 @@ h1.page-title {
clear: both;
}

.widget-title {
font-size: var(--global--font-size-sm);
.widget h1,
.widget h2,
.widget h3,
.widget h4,
.widget h5,
.widget h6 {
font-weight: var(--widget--font-weight-title);
line-height: var(--widget--line-height-title);
}

.widget h1 {
font-size: var(--global--font-size-md);
}

.widget h2 {
font-size: var(--global--font-size-sm);
}

.widget h3 {
font-size: var(--global--font-size-xs);
}

.widget h4 {
font-size: var(--global--font-size-xs);
}

.widget h5 {
font-size: var(--global--font-size-xs);
}

.widget h6 {
font-size: var(--global--font-size-xs);
}

.search-form {
display: flex;
flex-wrap: wrap;
Expand Down
32 changes: 30 additions & 2 deletions src/wp-content/themes/twentytwentyone/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -5480,12 +5480,40 @@ h1.page-title {
clear: both;
}

.widget-title {
font-size: var(--global--font-size-sm);
.widget h1,
.widget h2,
.widget h3,
.widget h4,
.widget h5,
.widget h6 {
font-weight: var(--widget--font-weight-title);
line-height: var(--widget--line-height-title);
}

.widget h1 {
font-size: var(--global--font-size-md);
}

.widget h2 {
font-size: var(--global--font-size-sm);
}

.widget h3 {
font-size: var(--global--font-size-xs);
}

.widget h4 {
font-size: var(--global--font-size-xs);
}

.widget h5 {
font-size: var(--global--font-size-xs);
}

.widget h6 {
font-size: var(--global--font-size-xs);
}

.search-form {
display: flex;
flex-wrap: wrap;
Expand Down
2 changes: 1 addition & 1 deletion src/wp-content/themes/twentytwentyone/style.css.map

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions tests/phpunit/tests/customize/manager.php
Original file line number Diff line number Diff line change
Expand Up @@ -659,7 +659,7 @@ function test_import_theme_starter_content() {
'header_image_data',
'background_image',
'widget_text[2]',
'widget_meta[3]',
'widget_meta[2]',
'sidebars_widgets[sidebar-1]',
'nav_menus_created_posts',
'nav_menu[-1]',
Expand All @@ -676,14 +676,14 @@ function test_import_theme_starter_content() {
);
$this->assertSameSets( $expected_setting_ids, array_keys( $changeset_values ) );

foreach ( array( 'widget_text[2]', 'widget_meta[3]' ) as $setting_id ) {
foreach ( array( 'widget_text[2]', 'widget_meta[2]' ) as $setting_id ) {
$this->assertInternalType( 'array', $changeset_values[ $setting_id ] );
$instance_data = $wp_customize->widgets->sanitize_widget_instance( $changeset_values[ $setting_id ] );
$this->assertInternalType( 'array', $instance_data );
$this->assertArrayHasKey( 'title', $instance_data );
}

$this->assertSame( array( 'text-2', 'meta-3' ), $changeset_values['sidebars_widgets[sidebar-1]'] );
$this->assertSame( array( 'text-2', 'meta-2' ), $changeset_values['sidebars_widgets[sidebar-1]'] );

$posts_by_name = array();
$this->assertCount( 7, $changeset_values['nav_menus_created_posts'] );
Expand Down
31 changes: 31 additions & 0 deletions tests/phpunit/tests/customize/widgets.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,39 @@ function setUp() {

add_theme_support( 'customize-selective-refresh-widgets' );
add_action( 'widgets_init', array( $this, 'remove_widgets_block_editor' ) );

$user_id = self::factory()->user->create( array( 'role' => 'administrator' ) );
wp_set_current_user( $user_id );

update_option(
'widget_search',
array(
2 => array( 'title' => '' ),
'_multiwidget' => 1,
)
);
update_option(
'widget_categories',
array(
2 => array(
'title' => '',
'count' => 0,
'hierarchical' => 0,
'dropdown' => 0,
),
'_multiwidget' => 1,
)
);
update_option(
'sidebars_widgets',
array(
'wp_inactive_widgets' => array(),
'sidebar-1' => array( 'search-2' ),
'sidebar-2' => array( 'categories-2' ),
'array_version' => 3,
)
);

$GLOBALS['wp_customize'] = new WP_Customize_Manager();
$this->manager = $GLOBALS['wp_customize'];

Expand Down
4 changes: 2 additions & 2 deletions tests/phpunit/tests/rest-api/rest-widgets-controller.php
Original file line number Diff line number Diff line change
Expand Up @@ -655,13 +655,13 @@ public function test_create_item_using_raw_instance() {
);
$response = rest_get_server()->dispatch( $request );
$data = $response->get_data();
$this->assertSame( 'block-2', $data['id'] );
$this->assertSame( 'block-7', $data['id'] );
$this->assertSame( 'sidebar-1', $data['sidebar'] );
$this->assertEqualSets(
array(
'content' => '<!-- wp:paragraph --><p>Block test</p><!-- /wp:paragraph -->',
),
get_option( 'widget_block' )[2]
get_option( 'widget_block' )[7]
);
}

Expand Down
Loading

0 comments on commit 8add05f

Please sign in to comment.