WordPress.org

Make WordPress Core

Ticket #45927: 45927.patch

File 45927.patch, 10.4 KB (added by allancole, 9 months ago)

This patch adds theme support for starter content and includes the starter content itself. There are two image files that are also attached and need to be added to the twentynineteen/img/ directory for the starter content to work properly.

  • src/wp-content/themes/twentynineteen/functions.php

     
    172172
    173173                // Add support for responsive embedded content.
    174174                add_theme_support( 'responsive-embeds' );
     175
     176                // Add support for starter content
     177                add_theme_support( 'starter-content', twentynineteen_starter_content() );
    175178        }
    176179endif;
    177180add_action( 'after_setup_theme', 'twentynineteen_setup' );
  • src/wp-content/themes/twentynineteen/inc/template-functions.php

     
    419419
    420420        return "rgb($r, $g, $b)";
    421421}
     422
     423/**
     424 * Define and register starter content to showcase the theme on new sites.
     425 *
     426 * @return array $starter_content Array of starter content.
     427 */
     428function twentynineteen_starter_content() {
     429        $starter_content = array(
     430                // Specify the core-defined and custom pages to create and add custom thumbnails to some of them.
     431                'posts' => array(
     432                        'front' => array(
     433                                'post_type' => 'page',
     434                                'post_title' => _x( 'Welcome', 'Theme starter content', 'twentynineteen' ),
     435                                'post_content' => join(
     436                                        '',
     437                                        array(
     438                                                '<!-- wp:cover {"url":"' . get_theme_file_uri( '/img/placeholder-image-landscape.png' ) . '","align":"full","contentAlign":"left","id":784,"dimRatio":70} -->',
     439                                                '<div class="wp-block-cover has-background-dim-70 has-background-dim has-left-content alignfull has-undefined-content" style="background-image:url(' . get_theme_file_uri( '/img/placeholder-image-landscape.png' ) . ')"><p class="wp-block-cover-text">Digital strategy for unique small businesses</p></div>',
     440                                                '<!-- /wp:cover -->',
     441                                                '<!-- wp:paragraph {"dropCap":true} -->',
     442                                                '<p class="has-drop-cap">' . _x( 'We help startups define a clear brand identity and digital strategy that will carry them through their financing rounds and scale as their business grows. This is an example of a page. Unlike posts, which are displayed on your blog&rsquo;s front page in the order they&rsquo;re published, pages are better suited for more timeless content that you want to be easily accessible, like your About or Contact information. Click the Edit link to make changes to this page or add another page after that one.', 'Theme starter content', 'twentynineteen' ) . '</p>',
     443                                                '<!-- /wp:paragraph -->',
     444                                                '<!-- wp:heading -->',
     445                                                '<h2>' . _x( 'Services', 'Theme starter content', 'twentynineteen' ) . '</h2>',
     446                                                '<!-- /wp:heading -->',
     447                                                '<!-- wp:columns --><div class="wp-block-columns has-2-columns">',
     448                                                '<!-- wp:column -->',
     449                                                '<div class="wp-block-column">',
     450                                                '<!-- wp:paragraph -->',
     451                                                '<p>' . _x( 'Website Design', 'Theme starter content', 'twentynineteen' ) . '</p>',
     452                                                '<!-- /wp:paragraph -->',
     453                                                '<!-- wp:paragraph -->',
     454                                                '<p>' . _x( 'Mobile  Apps', 'Theme starter content', 'twentynineteen' ) . '</p>',
     455                                                '<!-- /wp:paragraph -->',
     456                                                '<!-- wp:paragraph -->',
     457                                                '<p>' . _x( 'Social Media Strategy', 'Theme starter content', 'twentynineteen' ) . '</p>',
     458                                                '<!-- /wp:paragraph -->',
     459                                                '</div><!-- /wp:column -->',
     460                                                '<!-- wp:column -->',
     461                                                '<div class="wp-block-column">',
     462                                                '<!-- wp:paragraph -->',
     463                                                '<p>' . _x( 'Marketing', 'Theme starter content', 'twentynineteen' ) . '</p>',
     464                                                '<!-- /wp:paragraph -->',
     465                                                '<!-- wp:paragraph -->',
     466                                                '<p>' . _x( 'Copywriting', 'Theme starter content', 'twentynineteen' ) . '</p>',
     467                                                '<!-- /wp:paragraph -->',
     468                                                '<!-- wp:paragraph -->',
     469                                                '<p>' . _x( 'Content Strategy', 'Theme starter content', 'twentynineteen' ) . '</p>',
     470                                                '<!-- /wp:paragraph --></div>',
     471                                                '<!-- /wp:column -->',
     472                                                '</div><!-- /wp:columns -->',
     473                                                '<!-- wp:heading -->',
     474                                                '<h2>' . _x( 'Case Studies', 'Theme starter content', 'twentynineteen' ) . '</h2>',
     475                                                '<!-- /wp:heading -->',
     476                                                '<!-- wp:pullquote {"align":"wide","className":"is-style-solid-color"} -->',
     477                                                '<figure class="wp-block-pullquote alignwide is-style-solid-color"><blockquote><p>' . _x( 'Redifine brands', 'Theme starter content', 'twentynineteen' ) . '</p><cite>' . _x( 'We help startups define (or refine) a clear brand identity.', 'Theme starter content', 'twentynineteen' ) . '</cite></blockquote></figure>',
     478                                                '<!-- /wp:pullquote -->',
     479                                                '<!-- wp:pullquote {"customMainColor":"#0e0f0f","align":"wide","className":"is-style-solid-color"} -->',
     480                                                '<figure class="wp-block-pullquote alignwide is-style-solid-color" style="background-color:#0e0f0f"><blockquote><p>' . _x( 'Activate new customers', 'Theme starter content', 'twentynineteen' ) . '</p><cite>' . _x( 'We help businesses grow.', 'Theme starter content', 'twentynineteen' ) . '</cite></blockquote></figure>',
     481                                                '<!-- /wp:pullquote -->',
     482                                                '<!-- wp:pullquote {"customMainColor":"#ffffff","customTextColor":"#111111","align":"wide","className":"is-style-solid-color"} -->',
     483                                                '<figure class="wp-block-pullquote alignwide is-style-solid-color" style="background-color:#ffffff"><blockquote class="has-text-color" style="color:#111111"><p>' . _x( 'Spark interest on social media', 'Theme starter content', 'twentynineteen' ) . '</p><cite>' . _x( 'We help companies communicate with their customers.', 'Theme starter content', 'twentynineteen' ) . '</cite></blockquote></figure>',
     484                                                '<!-- /wp:pullquote -->',
     485                                                '<!-- wp:heading -->',
     486                                                '<h2>' . _x( 'Our Leadership', 'Theme starter content', 'twentynineteen' ) . '</h2>',
     487                                                '<!-- /wp:heading -->',
     488                                                '<!-- wp:gallery {"columns":3,"align":"full"} -->',
     489                                                '<ul class="wp-block-gallery alignfull columns-3 is-cropped"><li class="blocks-gallery-item"><figure><img src="' . get_theme_file_uri( '/img/placeholder-image-portrait.png' ) . '" alt="placeholder" data-id="" data-link="" class=""/><figcaption>' . _x( 'Ava Young, Founder', 'Theme starter content', 'twentynineteen' ) . '</figcaption></figure></li><li class="blocks-gallery-item"><figure><img src="' . get_theme_file_uri( '/img/placeholder-image-portrait.png' ) . '" alt="placeholder" data-id="" data-link="" class=""/><figcaption>' . _x( 'Doug Watson, Creative Director', 'Theme starter content', 'twentynineteen' ) . '</figcaption></figure></li><li class="blocks-gallery-item"><figure><img src="' . get_theme_file_uri( '/img/placeholder-image-portrait.png' ) . '" alt="placeholder" data-id="" data-link="" class=""/><figcaption>' . _x( 'Taco, Good Dog', 'Theme starter content', 'twentynineteen' ) . '</figcaption></figure></li></ul>',
     490                                                '<!-- /wp:gallery -->',
     491                                                '<!-- wp:pullquote {"align":"wide"} -->',
     492                                                '<figure class="wp-block-pullquote alignwide"><blockquote><p>' . _x( '&rdquo;Eva&rsquo;s team was essential to our online success&rdquo;', 'Theme starter content', 'twentynineteen' ) . '</p><cite>' . _x( '&mdash; James Paddington, Twice Media', 'Theme starter content', 'twentynineteen' ) . '<br></cite></blockquote></figure>',
     493                                                '<!-- /wp:pullquote -->',
     494                                                '<!-- wp:columns {"align":"wide"} -->',
     495                                                '<div class="wp-block-columns alignwide has-2-columns">',
     496
     497                                                '<!-- wp:column -->',
     498                                                '<div class="wp-block-column">',
     499                                                '<!-- wp:heading -->',
     500                                                '<h2>' . _x( 'Get in touch', 'Theme starter content', 'twentynineteen' ) . '</h2>',
     501                                                '<!-- /wp:heading -->',
     502
     503                                                '<!-- wp:paragraph -->',
     504                                                '<p>' . _x( 'Discover how we can boost your brand with a unique and powerful digital marketing strategy.', 'Theme starter content', 'twentynineteen' ) . '</p>',
     505                                                '<!-- /wp:paragraph -->',
     506                                                '<!-- wp:button -->',
     507                                                '<div class="wp-block-button"><a class="wp-block-button__link" href="#">' . _x( 'Get in touch', 'Theme starter content', 'twentynineteen' ) . '</a></div>',
     508                                                '<!-- /wp:button -->',
     509                                                '</div><!-- /wp:column -->',
     510                                                '<!-- wp:column -->',
     511                                                '<div class="wp-block-column">',
     512                                                '<!-- wp:heading -->',
     513                                                '<h2>' . _x( 'Visit our office', 'Theme starter content', 'twentynineteen' ) . '</h2>',
     514                                                '<!-- /wp:heading -->',
     515                                                '<!-- wp:paragraph -->',
     516                                                '<p>' . _x( '4324 Buena Vista Drive<br>San Francisco, CA 01234', 'Theme starter content', 'twentynineteen' ) . '</p>',
     517                                                '<!-- /wp:paragraph -->',
     518                                                '<!-- wp:paragraph -->',
     519                                                '<p>' . _x( 'Monday–Friday: 8AM-6PM<br>Saturday–Sunday: By Appointment', 'Theme starter content', 'twentynineteen' ) . '</p>',
     520                                                '<!-- /wp:paragraph -->',
     521                                                '</div><!-- /wp:column -->',
     522                                                '</div><!-- /wp:columns -->',
     523                                        )
     524                                ),
     525                        ),
     526                        'blog',
     527                        'about' => array(
     528                                'thumbnail' => '{{placeholder-landscape}}',
     529                        ),
     530                        'contact',
     531                ),
     532
     533                // Create the custom image attachments used as post thumbnails for pages.
     534                'attachments' => array(
     535                        'placeholder-landscape' => array(
     536                                'post_title' => _x( 'Landscape image', 'Theme starter content', 'twentynineteen' ),
     537                                'file' => 'img/placeholder-image-landscape.png', // URL relative to the template directory.
     538                        ),
     539                        'placeholder-portrait' => array(
     540                                'post_title' => _x( 'Portrait image', 'Theme starter content', 'twentynineteen' ),
     541                                'file' => 'img/placeholder-image-portrait.png',
     542                        ),
     543                ),
     544                // Default to a static front page and assign the front and posts pages.
     545                'options' => array(
     546                        'show_on_front' => 'page',
     547                        'page_on_front' => '{{front}}',
     548                        'page_for_posts' => '{{blog}}',
     549                ),
     550                // Set up nav menus for each of the two areas registered in the theme.
     551                'nav_menus' => array(
     552                        // Assign a menu to the "menu-1" location.
     553                        'menu-1' => array(
     554                                'name' => __( 'Primary', 'twentynineteen' ),
     555                                'items' => array(
     556                                        'link_home', // Note that the core "home" page is actually a link in case a static front page is not used.
     557                                        'page_blog',
     558                                        'page_about',
     559                                        'page_contact',
     560                                ),
     561                        ),
     562                        // Assign a menu to the "social" location.
     563                        'social' => array(
     564                                'name' => __( 'Social Links', 'twentynineteen' ),
     565                                'items' => array(
     566                                        'link_facebook',
     567                                        'link_twitter',
     568                                        'link_instagram',
     569                                        'link_email',
     570                                ),
     571                        ),
     572                ),
     573        );
     574        /**
     575         * Filters Twenty Nineteen array of starter content.
     576         *
     577         * @param array $starter_content Array of starter content.
     578         */
     579        return apply_filters( 'twentynineteen_starter_content', $starter_content );
     580}