From 30883c26bdceb9eaf32c8d4a1b0c1bce223b5226 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 09:57:26 +0200 Subject: Adding upstream version 6.5+dfsg1. Signed-off-by: Daniel Baumann --- wp-content/plugins/akismet/akismet.php | 4 +- wp-content/plugins/akismet/class.akismet-admin.php | 53 +++--- .../plugins/akismet/class.akismet-rest-api.php | 179 +++++++++++++++++++++ wp-content/plugins/akismet/class.akismet.php | 65 +++++++- wp-content/plugins/akismet/readme.txt | 9 +- wp-content/plugins/akismet/views/config.php | 68 ++++---- wp-content/plugins/akismet/views/notice.php | 10 +- wp-content/themes/twentytwentyfour/functions.php | 2 +- .../themes/twentytwentyfour/parts/header.html | 6 +- .../themes/twentytwentyfour/patterns/footer.php | 18 +-- .../patterns/hidden-portfolio-hero.php | 2 +- .../patterns/page-about-business.php | 2 +- .../patterns/page-home-blogging.php | 2 +- .../patterns/page-home-business.php | 2 +- .../patterns/page-home-portfolio-gallery.php | 2 +- .../patterns/page-home-portfolio.php | 2 +- .../patterns/page-newsletter-landing.php | 2 +- .../patterns/page-portfolio-overview.php | 2 +- .../patterns/page-rsvp-landing.php | 2 +- wp-content/themes/twentytwentyfour/readme.txt | 35 +++- wp-content/themes/twentytwentyfour/screenshot.png | Bin 956898 -> 940864 bytes wp-content/themes/twentytwentyfour/style.css | 4 +- .../themes/twentytwentyfour/styles/ember.json | 8 +- wp-content/themes/twentytwentyfour/theme.json | 13 +- .../assets/fonts/dm-sans/DMSans-Bold-Italic.woff2 | Bin 19200 -> 32784 bytes .../assets/fonts/dm-sans/DMSans-Bold.woff2 | Bin 18212 -> 29272 bytes .../fonts/dm-sans/DMSans-Regular-Italic.woff2 | Bin 19004 -> 32492 bytes .../assets/fonts/dm-sans/DMSans-Regular.woff2 | Bin 18096 -> 29272 bytes wp-content/themes/twentytwentythree/readme.txt | 11 +- wp-content/themes/twentytwentythree/screenshot.png | Bin 95166 -> 74030 bytes wp-content/themes/twentytwentythree/style.css | 4 +- .../themes/twentytwentythree/styles/aubergine.json | 4 +- .../themes/twentytwentythree/styles/block-out.json | 2 +- .../themes/twentytwentythree/styles/pitch.json | 2 +- .../themes/twentytwentythree/styles/whisper.json | 6 +- wp-content/themes/twentytwentythree/theme.json | 4 +- .../assets/images/bird-on-black.jpg | Bin 28901 -> 31329 bytes .../twentytwentytwo/assets/images/bird-on-gray.jpg | Bin 33742 -> 35687 bytes .../assets/images/bird-on-green.jpg | Bin 46484 -> 50998 bytes .../assets/images/bird-on-salmon.jpg | Bin 84360 -> 88729 bytes .../themes/twentytwentytwo/assets/images/ducks.jpg | Bin 366525 -> 373006 bytes .../assets/images/flight-path-on-gray-a.jpg | Bin 35500 -> 42366 bytes .../assets/images/flight-path-on-gray-b.jpg | Bin 58207 -> 66761 bytes .../assets/images/flight-path-on-gray-c.jpg | Bin 74238 -> 84870 bytes .../assets/images/flight-path-on-salmon.jpg | Bin 32835 -> 35888 bytes .../twentytwentytwo/assets/images/icon-bird.jpg | Bin 4911 -> 5245 bytes .../themes/twentytwentytwo/inc/block-patterns.php | 10 +- .../page-about-large-image-and-buttons.php | 2 +- .../inc/patterns/page-about-links-dark.php | 2 +- .../inc/patterns/page-about-links.php | 2 +- .../inc/patterns/page-about-media-left.php | 2 +- .../inc/patterns/page-about-media-right.php | 2 +- .../inc/patterns/page-about-simple-dark.php | 2 +- .../inc/patterns/page-about-solid-color.php | 2 +- .../inc/patterns/page-layout-image-and-text.php | 2 +- .../patterns/page-layout-image-text-and-video.php | 2 +- .../inc/patterns/page-layout-two-columns.php | 2 +- .../inc/patterns/page-sidebar-blog-posts-right.php | 2 +- .../inc/patterns/page-sidebar-blog-posts.php | 2 +- .../inc/patterns/page-sidebar-grid-posts.php | 2 +- .../inc/patterns/page-sidebar-poster.php | 2 +- wp-content/themes/twentytwentytwo/readme.txt | 11 +- wp-content/themes/twentytwentytwo/screenshot.png | Bin 162290 -> 160517 bytes wp-content/themes/twentytwentytwo/style.css | 4 +- wp-content/themes/twentytwentytwo/theme.json | 1 + 65 files changed, 437 insertions(+), 142 deletions(-) (limited to 'wp-content') diff --git a/wp-content/plugins/akismet/akismet.php b/wp-content/plugins/akismet/akismet.php index 9ec3315..b62fddd 100644 --- a/wp-content/plugins/akismet/akismet.php +++ b/wp-content/plugins/akismet/akismet.php @@ -6,7 +6,7 @@ Plugin Name: Akismet Anti-spam: Spam Protection Plugin URI: https://akismet.com/ Description: Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam. Akismet Anti-spam keeps your site protected even while you sleep. To get started: activate the Akismet plugin and then go to your Akismet Settings page to set up your API key. -Version: 5.3.1 +Version: 5.3.2 Requires at least: 5.8 Requires PHP: 5.6.20 Author: Automattic - Anti-spam Team @@ -39,7 +39,7 @@ if ( !function_exists( 'add_action' ) ) { exit; } -define( 'AKISMET_VERSION', '5.3.1' ); +define( 'AKISMET_VERSION', '5.3.2' ); define( 'AKISMET__MINIMUM_WP_VERSION', '5.8' ); define( 'AKISMET__PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); define( 'AKISMET_DELETE_LIMIT', 10000 ); diff --git a/wp-content/plugins/akismet/class.akismet-admin.php b/wp-content/plugins/akismet/class.akismet-admin.php index b30813a..dd39104 100644 --- a/wp-content/plugins/akismet/class.akismet-admin.php +++ b/wp-content/plugins/akismet/class.akismet-admin.php @@ -667,6 +667,18 @@ class Akismet_Admin { $message = esc_html( __( 'Akismet was unable to recheck this comment.', 'akismet' ) ); } break; + case 'webhook-spam': + $message = esc_html( __( 'Akismet caught this comment as spam and updated its status via webhook.', 'akismet' ) ); + break; + case 'webhook-ham': + $message = esc_html( __( 'Akismet cleared this comment and updated its status via webhook.', 'akismet' ) ); + break; + case 'webhook-spam-noaction': + $message = esc_html( __( 'Akismet determined this comment was spam during a recheck. It did not update the comment status because it had already been modified by another user or plugin.', 'akismet' ) ); + break; + case 'webhook-ham-noaction': + $message = esc_html( __( 'Akismet cleared this comment during a recheck. It did not update the comment status because it had already been modified by another user or plugin.', 'akismet' ) ); + break; default: if ( preg_match( '/^status-changed/', $row['event'] ) ) { // Half of these used to be saved without the dash after 'status-changed'. @@ -1098,26 +1110,29 @@ class Akismet_Admin { } /* - // To see all variants when testing. - $notices[] = array( 'type' => 'active-notice', 'time_saved' => 'Cleaning up spam takes time. Akismet has saved you 1 minute!' ); - $notices[] = array( 'type' => 'plugin' ); - $notices[] = array( 'type' => 'spam-check', 'link_text' => 'Link text.' ); - $notices[] = array( 'type' => 'notice', 'notice_header' => 'This is the notice header.', 'notice_text' => 'This is the notice text.' ); - $notices[] = array( 'type' => 'missing-functions' ); - $notices[] = array( 'type' => 'servers-be-down' ); - $notices[] = array( 'type' => 'active-dunning' ); - $notices[] = array( 'type' => 'cancelled' ); - $notices[] = array( 'type' => 'suspended' ); - $notices[] = array( 'type' => 'missing' ); - $notices[] = array( 'type' => 'no-sub' ); - $notices[] = array( 'type' => 'new-key-valid' ); - $notices[] = array( 'type' => 'new-key-invalid' ); - $notices[] = array( 'type' => 'existing-key-invalid' ); - $notices[] = array( 'type' => 'new-key-failed' ); - $notices[] = array( 'type' => 'usage-limit', 'api_calls' => '15000', 'usage_limit' => '10000', 'upgrade_plan' => 'Enterprise', 'upgrade_url' => 'https://akismet.com/account/', 'code' => 10502 ); - $notices[] = array( 'type' => 'spam-check-cron-disabled' ); - $notices[] = array( 'type' => 'alert', 'code' => 123 ); + * To see all variants when testing. + * + * You may also want to comment out the akismet_view_arguments filter in Akismet::view() + * to ensure that you can see all of the notices (e.g. suspended, active-notice). */ + // $notices[] = array( 'type' => 'active-notice', 'time_saved' => 'Cleaning up spam takes time. Akismet has saved you 1 minute!' ); + // $notices[] = array( 'type' => 'plugin' ); + // $notices[] = array( 'type' => 'spam-check', 'link_text' => 'Link text.' ); + // $notices[] = array( 'type' => 'notice', 'notice_header' => 'This is the notice header.', 'notice_text' => 'This is the notice text.' ); + // $notices[] = array( 'type' => 'missing-functions' ); + // $notices[] = array( 'type' => 'servers-be-down' ); + // $notices[] = array( 'type' => 'active-dunning' ); + // $notices[] = array( 'type' => 'cancelled' ); + // $notices[] = array( 'type' => 'suspended' ); + // $notices[] = array( 'type' => 'missing' ); + // $notices[] = array( 'type' => 'no-sub' ); + // $notices[] = array( 'type' => 'new-key-valid' ); + // $notices[] = array( 'type' => 'new-key-invalid' ); + // $notices[] = array( 'type' => 'existing-key-invalid' ); + // $notices[] = array( 'type' => 'new-key-failed' ); + // $notices[] = array( 'type' => 'usage-limit', 'api_calls' => '15000', 'usage_limit' => '10000', 'upgrade_plan' => 'Enterprise', 'upgrade_url' => 'https://akismet.com/account/', 'code' => 10502 ); + // $notices[] = array( 'type' => 'spam-check-cron-disabled' ); + // $notices[] = array( 'type' => 'alert', 'code' => 123 ); Akismet::log( compact( 'stat_totals', 'akismet_user' ) ); Akismet::view( 'config', compact( 'api_key', 'akismet_user', 'stat_totals', 'notices' ) ); diff --git a/wp-content/plugins/akismet/class.akismet-rest-api.php b/wp-content/plugins/akismet/class.akismet-rest-api.php index ef09f70..12e86f0 100644 --- a/wp-content/plugins/akismet/class.akismet-rest-api.php +++ b/wp-content/plugins/akismet/class.akismet-rest-api.php @@ -129,6 +129,16 @@ class Akismet_REST_API { ), ) ) ); + + register_rest_route( + 'akismet/v1', + '/webhook', + array( + 'methods' => WP_REST_Server::CREATABLE, + 'callback' => array( 'Akismet_REST_API', 'receive_webhook' ), + 'permission_callback' => array( 'Akismet_REST_API', 'remote_call_permission_callback' ), + ) + ); } /** @@ -370,4 +380,173 @@ class Akismet_REST_API { public static function sanitize_key( $key, $request, $param ) { return trim( $key ); } + + /** + * Process a webhook request from the Akismet servers. + * + * @param WP_REST_Request $request + * @return WP_Error|WP_REST_Response + */ + public static function receive_webhook( $request ) { + Akismet::log( array( 'Webhook request received', $request->get_body() ) ); + + /** + * The request body should look like this: + * array( + * 'key' => '1234567890abcd', + * 'endpoint' => '[comment-check|submit-ham|submit-spam]', + * 'comments' => array( + * array( + * 'guid' => '[...]', + * 'result' => '[true|false]', + * 'comment_author' => '[...]', + * [...] + * ), + * array( + * 'guid' => '[...]', + * [...], + * ), + * [...] + * ) + * ) + * + * Multiple comments can be included in each request, and the only truly required + * field for each is the guid, although it would be friendly to include also + * comment_post_ID, comment_parent, and comment_author_email, if possible to make + * searching easier. + */ + + // The response will include statuses for the result of each comment that was supplied. + $response = array( + 'comments' => array(), + ); + + $endpoint = $request->get_param( 'endpoint' ); + + switch ( $endpoint ) { + case 'comment-check': + $webhook_comments = $request->get_param( 'comments' ); + + if ( ! is_array( $webhook_comments ) ) { + return rest_ensure_response( new WP_Error( 'malformed_request', __( 'The \'comments\' parameter must be an array.', 'akismet' ), array( 'status' => 400 ) ) ); + } + + foreach ( $webhook_comments as $webhook_comment ) { + $guid = $webhook_comment['guid']; + + if ( ! $guid ) { + // Without the GUID, we can't be sure that we're matching the right comment. + // We'll make it a rule that any comment without a GUID is ignored intentionally. + continue; + } + + // Search on the fields that are indexed in the comments table, plus the GUID. + // The GUID is the only thing we really need to search on, but comment_meta + // is not indexed in a useful way if there are many many comments. This + // should help narrow it down first. + $queryable_fields = array( + 'comment_post_ID' => 'post_id', + 'comment_parent' => 'parent', + 'comment_author_email' => 'author_email', + ); + + $query_args = array(); + $query_args['status'] = 'any'; + $query_args['meta_key'] = 'akismet_guid'; + $query_args['meta_value'] = $guid; + + foreach ( $queryable_fields as $queryable_field => $wp_comment_query_field ) { + if ( isset( $webhook_comment[ $queryable_field ] ) ) { + $query_args[ $wp_comment_query_field ] = $webhook_comment[ $queryable_field ]; + } + } + + $comments_query = new WP_Comment_Query( $query_args ); + $comments = $comments_query->comments; + + if ( ! $comments ) { + // Unexpected, although the comment could have been deleted since being submitted. + Akismet::log( 'Webhook failed: no matching comment found.' ); + + $response['comments'][ $guid ] = array( 'status' => 'error', 'message' => __( 'Could not find matching comment.', 'akismet' ) ); + + continue; + } if ( count( $comments ) > 1 ) { + // Two comments shouldn't be able to match the same GUID. + Akismet::log( 'Webhook failed: multiple matching comments found.', $comments ); + + $response['comments'][ $guid ] = array( 'status' => 'error', 'message' => __( 'Multiple comments matched request.', 'akismet' ) ); + + continue; + } else { + // We have one single match, as hoped for. + Akismet::log( 'Found matching comment.', $comments ); + + $current_status = wp_get_comment_status( $comments[0] ); + + $result = $webhook_comment['result']; + + if ( 'true' == $result ) { + Akismet::log( 'Comment should be spam' ); + + // The comment should be classified as spam. + if ( 'spam' != $current_status ) { + // The comment is not classified as spam. If Akismet was the one to act on it, move it to spam. + if ( Akismet::last_comment_status_change_came_from_akismet( $comments[0]->comment_ID ) ) { + Akismet::log( 'Comment is not spam; marking as spam.' ); + + wp_spam_comment( $comments[0] ); + Akismet::update_comment_history( $comments[0]->comment_ID, '', 'webhook-spam' ); + } else { + Akismet::log( 'Comment is not spam, but it has already been manually handled by some other process.' ); + Akismet::update_comment_history( $comments[0]->comment_ID, '', 'webhook-spam-noaction' ); + } + } + } else if ( 'false' == $result ) { + Akismet::log( 'Comment should be ham' ); + + // The comment should be classified as ham. + if ( 'spam' == $current_status ) { + Akismet::log( 'Comment is spam.' ); + + // The comment is classified as spam. If Akismet was the one to label it as spam, unspam it. + if ( Akismet::last_comment_status_change_came_from_akismet( $comments[0]->comment_ID ) ) { + Akismet::log( 'Akismet marked it as spam; unspamming.' ); + + wp_unspam_comment( $comments[0] ); + akismet::update_comment_history( $comments[0]->comment_ID, '', 'webhook-ham' ); + } else { + Akismet::log( 'Comment is not spam, but it has already been manually handled by some other process.' ); + Akismet::update_comment_history( $comments[0]->comment_ID, '', 'webhook-ham-noaction' ); + } + } + } + + $response['comments'][ $guid ] = array( 'status' => 'success' ); + } + } + + break; + case 'submit-ham': + case 'submit-spam': + // Nothing to do for submit-ham or submit-spam. + break; + default: + // Unsupported endpoint. + break; + } + + /** + * Allow plugins to do things with a successfully processed webhook request, like logging. + * + * @since 5.3.2 + * + * @param WP_REST_Request $request The REST request object. + */ + do_action( 'akismet_webhook_received', $request ); + + Akismet::log( 'Done processing webhook.' ); + + return rest_ensure_response( $response ); + } } diff --git a/wp-content/plugins/akismet/class.akismet.php b/wp-content/plugins/akismet/class.akismet.php index 951142e..7a89f61 100644 --- a/wp-content/plugins/akismet/class.akismet.php +++ b/wp-content/plugins/akismet/class.akismet.php @@ -642,7 +642,14 @@ class Akismet { return 0; } - // get the full comment history for a given comment, as an array in reverse chronological order + /** + * Get the full comment history for a given comment, as an array in reverse chronological order. + * Each entry will have an 'event', a 'time', and possible a 'message' member (if the entry is old enough). + * Some entries will also have a 'user' or 'meta' member. + * + * @param int $comment_id The relevant comment ID. + * @return array|bool An array of history events, or false if there is no history. + */ public static function get_comment_history( $comment_id ) { $history = get_comment_meta( $comment_id, 'akismet_history', false ); if ( empty( $history ) || empty( $history[ 0 ] ) ) { @@ -681,6 +688,10 @@ class Akismet { $history[] = array( 'time' => 445856425, 'event' => 'status-spam', 'user' => 'sam' ); $history[] = array( 'time' => 445856426, 'event' => 'status-hold', 'user' => 'sam' ); $history[] = array( 'time' => 445856427, 'event' => 'status-approve', 'user' => 'sam' ); + $history[] = array( 'time' => 445856427, 'event' => 'webhook-spam' ); + $history[] = array( 'time' => 445856427, 'event' => 'webhook-ham' ); + $history[] = array( 'time' => 445856427, 'event' => 'webhook-spam-noaction' ); + $history[] = array( 'time' => 445856427, 'event' => 'webhook-ham-noaction' ); */ usort( $history, array( 'Akismet', '_cmp_time' ) ); @@ -819,6 +830,17 @@ class Akismet { if ( get_comment_meta( $comment->comment_ID, 'akismet_rechecking' ) ) return; + if ( function_exists( 'getallheaders' ) ) { + $request_headers = getallheaders(); + + foreach ( $request_headers as $header => $value ) { + if ( strtolower( $header ) == 'x-akismet-webhook' ) { + // This change is due to a webhook request. + return; + } + } + } + // Assumption alert: // We want to submit comments to Akismet only when a moderator explicitly spams or approves it - not if the status // is changed automatically by another plugin. Unfortunately WordPress doesn't provide an unambiguous way to @@ -1583,7 +1605,7 @@ p { public static function view( $name, array $args = array() ) { $args = apply_filters( 'akismet_view_arguments', $args, $name ); - foreach ( $args AS $key => $val ) { + foreach ( $args as $key => $val ) { $$key = $val; } @@ -1871,4 +1893,43 @@ p { return $return_value; } + + /** + * Was the last entry in the comment history created by Akismet? + * + * @param int $comment_id The ID of the comment. + * @return bool + */ + public static function last_comment_status_change_came_from_akismet( $comment_id ) { + $history = self::get_comment_history( $comment_id ); + + if ( empty( $history ) ) { + return false; + } + + $most_recent_history_event = $history[0]; + + if ( ! isset( $most_recent_history_event['event'] ) ) { + return false; + } + + $akismet_history_events = array( + 'check-error', + 'cron-retry-ham', + 'cron-retry-spam', + 'check-ham', + 'check-spam', + 'recheck-error', + 'recheck-ham', + 'recheck-spam', + 'webhook-ham', + 'webhook-spam', + ); + + if ( in_array( $most_recent_history_event['event'], $akismet_history_events ) ) { + return true; + } + + return false; + } } diff --git a/wp-content/plugins/akismet/readme.txt b/wp-content/plugins/akismet/readme.txt index 2221acf..30d7748 100644 --- a/wp-content/plugins/akismet/readme.txt +++ b/wp-content/plugins/akismet/readme.txt @@ -3,7 +3,7 @@ Contributors: matt, ryan, andy, mdawaffe, tellyworth, josephscott, lessbloat, eo Tags: comments, spam, antispam, anti-spam, contact form, anti spam, comment moderation, comment spam, contact form spam, spam comments Requires at least: 5.8 Tested up to: 6.4 -Stable tag: 5.3.1 +Stable tag: 5.3.2 License: GPLv2 or later The best anti-spam protection to block spam comments and spam in a contact form. The most trusted antispam solution for WordPress and WooCommerce. @@ -32,6 +32,13 @@ Upload the Akismet plugin to your blog, activate it, and then enter your Akismet == Changelog == += 5.3.2 = +*Release Date - 21 March 2024* + +* Improve the empty state shown to new users when no spam has been caught yet. +* Update the message shown to users without a current subscription. +* Add foundations for future webhook support. + = 5.3.1 = *Release Date - 17 January 2024* diff --git a/wp-content/plugins/akismet/views/config.php b/wp-content/plugins/akismet/views/config.php index 77e5914..b9e4457 100644 --- a/wp-content/plugins/akismet/views/config.php +++ b/wp-content/plugins/akismet/views/config.php @@ -30,7 +30,6 @@ $kses_allow_link_href = array( - spam > 0 ) : ?> -
- -
- -
-
    -
  • -

    - spam ); ?> - spam, 'akismet' ) ); ?> -
  • -
  • -

    - spam ); ?> - spam, 'akismet' ) ); ?> -
  • -
  • -

    - accuracy ); ?>% - - missed_spam, 'akismet' ), number_format( $stat_totals['all']->missed_spam ) ) ) . ', '; - /* translators: %s: number of false positive spam flagged by Akismet */ - echo esc_html( sprintf( _n( '%s false positive', '%s false positives', $stat_totals['all']->false_positives, 'akismet' ), number_format( $stat_totals['all']->false_positives ) ) ); - ?> - -
  • -
-
- - - -
-

-
- +
+ +
+ +
+
    +
  • +

    + spam ); ?> + spam, 'akismet' ) ); ?> +
  • +
  • +

    + spam ); ?> + spam, 'akismet' ) ); ?> +
  • +
  • +

    + accuracy ); ?>% + + missed_spam, 'akismet' ), number_format( $stat_totals['all']->missed_spam ) ) ) . ', '; + /* translators: %s: number of false positive spam flagged by Akismet */ + echo esc_html( sprintf( _n( '%s false positive', '%s false positives', $stat_totals['all']->false_positives, 'akismet' ), number_format( $stat_totals['all']->false_positives ) ) ); + ?> + +
  • +
+
diff --git a/wp-content/plugins/akismet/views/notice.php b/wp-content/plugins/akismet/views/notice.php index 8bacc54..466a322 100644 --- a/wp-content/plugins/akismet/views/notice.php +++ b/wp-content/plugins/akismet/views/notice.php @@ -152,15 +152,11 @@ $kses_allow_strong = array( 'strong' => true );

+

sign into your account and choose one.', 'akismet' ), esc_url( 'https://akismet.com/pricing' ) ), $kses_allow_link ); - ?> -

- contact our support team with any questions.', 'akismet' ), esc_url( 'https://akismet.com/contact/' ) ), $kses_allow_link ); + /* translators: the placeholder is the URL to the Akismet pricing page. */ + echo wp_kses( sprintf( __( 'Please choose a plan to get started with Akismet.', 'akismet' ), esc_url( 'https://akismet.com/pricing' ) ), $kses_allow_link ); ?>

diff --git a/wp-content/themes/twentytwentyfour/functions.php b/wp-content/themes/twentytwentyfour/functions.php index baee062..8536cb8 100644 --- a/wp-content/themes/twentytwentyfour/functions.php +++ b/wp-content/themes/twentytwentyfour/functions.php @@ -194,7 +194,7 @@ if ( ! function_exists( 'twentytwentyfour_pattern_categories' ) ) : function twentytwentyfour_pattern_categories() { register_block_pattern_category( - 'page', + 'twentytwentyfour_page', array( 'label' => _x( 'Pages', 'Block pattern category', 'twentytwentyfour' ), 'description' => __( 'A collection of full page layouts.', 'twentytwentyfour' ), diff --git a/wp-content/themes/twentytwentyfour/parts/header.html b/wp-content/themes/twentytwentyfour/parts/header.html index 632900c..2fa483b 100644 --- a/wp-content/themes/twentytwentyfour/parts/header.html +++ b/wp-content/themes/twentytwentyfour/parts/header.html @@ -15,7 +15,11 @@ - + +
+ +
+ diff --git a/wp-content/themes/twentytwentyfour/patterns/footer.php b/wp-content/themes/twentytwentyfour/patterns/footer.php index b39b3dd..85f310d 100644 --- a/wp-content/themes/twentytwentyfour/patterns/footer.php +++ b/wp-content/themes/twentytwentyfour/patterns/footer.php @@ -45,9 +45,9 @@ - - - + + + @@ -68,9 +68,9 @@ - - - + + + @@ -90,9 +90,9 @@ - - - + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/hidden-portfolio-hero.php b/wp-content/themes/twentytwentyfour/patterns/hidden-portfolio-hero.php index 29e6abc..1af3e7d 100644 --- a/wp-content/themes/twentytwentyfour/patterns/hidden-portfolio-hero.php +++ b/wp-content/themes/twentytwentyfour/patterns/hidden-portfolio-hero.php @@ -13,7 +13,7 @@
-

Leia Acosta, a passionate photographer who finds inspiration in capturing the fleeting beauty of life.' ) ); ?>

+

Leia Acosta, a passionate photographer who finds inspiration in capturing the fleeting beauty of life.', 'twentytwentyfour' ) ); ?>

diff --git a/wp-content/themes/twentytwentyfour/patterns/page-about-business.php b/wp-content/themes/twentytwentyfour/patterns/page-about-business.php index f04b209..ad62698 100644 --- a/wp-content/themes/twentytwentyfour/patterns/page-about-business.php +++ b/wp-content/themes/twentytwentyfour/patterns/page-about-business.php @@ -2,7 +2,7 @@ /** * Title: About * Slug: twentytwentyfour/page-about-business - * Categories: page + * Categories: twentytwentyfour_page * Keywords: starter * Block Types: core/post-content * Post Types: page, wp_template diff --git a/wp-content/themes/twentytwentyfour/patterns/page-home-blogging.php b/wp-content/themes/twentytwentyfour/patterns/page-home-blogging.php index ae88e90..5cef5d4 100644 --- a/wp-content/themes/twentytwentyfour/patterns/page-home-blogging.php +++ b/wp-content/themes/twentytwentyfour/patterns/page-home-blogging.php @@ -2,7 +2,7 @@ /** * Title: Blogging home * Slug: twentytwentyfour/page-home-blogging - * Categories: page + * Categories: twentytwentyfour_page * Keywords: page, starter * Post Types: page, wp_template * Viewport width: 1400 diff --git a/wp-content/themes/twentytwentyfour/patterns/page-home-business.php b/wp-content/themes/twentytwentyfour/patterns/page-home-business.php index ca22952..415c42f 100644 --- a/wp-content/themes/twentytwentyfour/patterns/page-home-business.php +++ b/wp-content/themes/twentytwentyfour/patterns/page-home-business.php @@ -2,7 +2,7 @@ /** * Title: Business home * Slug: twentytwentyfour/page-home-business - * Categories: page + * Categories: twentytwentyfour_page * Keywords: starter * Block Types: core/post-content * Post Types: page, wp_template diff --git a/wp-content/themes/twentytwentyfour/patterns/page-home-portfolio-gallery.php b/wp-content/themes/twentytwentyfour/patterns/page-home-portfolio-gallery.php index cce1fdb..a9ce9d7 100644 --- a/wp-content/themes/twentytwentyfour/patterns/page-home-portfolio-gallery.php +++ b/wp-content/themes/twentytwentyfour/patterns/page-home-portfolio-gallery.php @@ -2,7 +2,7 @@ /** * Title: Portfolio home image gallery * Slug: twentytwentyfour/page-home-gallery - * Categories: page + * Categories: twentytwentyfour_page * Keywords: starter * Block Types: core/post-content * Post Types: page, wp_template diff --git a/wp-content/themes/twentytwentyfour/patterns/page-home-portfolio.php b/wp-content/themes/twentytwentyfour/patterns/page-home-portfolio.php index 4f3c473..40d4fa1 100644 --- a/wp-content/themes/twentytwentyfour/patterns/page-home-portfolio.php +++ b/wp-content/themes/twentytwentyfour/patterns/page-home-portfolio.php @@ -2,7 +2,7 @@ /** * Title: Portfolio home with post featured images * Slug: twentytwentyfour/page-home-portfolio - * Categories: page + * Categories: twentytwentyfour_page * Keywords: starter * Block Types: core/post-content * Post Types: page, wp_template diff --git a/wp-content/themes/twentytwentyfour/patterns/page-newsletter-landing.php b/wp-content/themes/twentytwentyfour/patterns/page-newsletter-landing.php index 24c6d9a..5ee552e 100644 --- a/wp-content/themes/twentytwentyfour/patterns/page-newsletter-landing.php +++ b/wp-content/themes/twentytwentyfour/patterns/page-newsletter-landing.php @@ -2,7 +2,7 @@ /** * Title: Newsletter landing * Slug: twentytwentyfour/page-newsletter-landing - * Categories: call-to-action, page, featured + * Categories: call-to-action, twentytwentyfour_page, featured * Keywords: starter * Block Types: core/post-content * Post Types: page, wp_template diff --git a/wp-content/themes/twentytwentyfour/patterns/page-portfolio-overview.php b/wp-content/themes/twentytwentyfour/patterns/page-portfolio-overview.php index 3e29b11..b0bf21b 100644 --- a/wp-content/themes/twentytwentyfour/patterns/page-portfolio-overview.php +++ b/wp-content/themes/twentytwentyfour/patterns/page-portfolio-overview.php @@ -2,7 +2,7 @@ /** * Title: Portfolio project overview * Slug: twentytwentyfour/page-portfolio-overview - * Categories: page, featured + * Categories: twentytwentyfour_page, featured * Keywords: starter * Block Types: core/post-content * Post Types: page, wp_template diff --git a/wp-content/themes/twentytwentyfour/patterns/page-rsvp-landing.php b/wp-content/themes/twentytwentyfour/patterns/page-rsvp-landing.php index 469a134..8b3ba83 100644 --- a/wp-content/themes/twentytwentyfour/patterns/page-rsvp-landing.php +++ b/wp-content/themes/twentytwentyfour/patterns/page-rsvp-landing.php @@ -2,7 +2,7 @@ /** * Title: RSVP landing * Slug: twentytwentyfour/page-rsvp-landing - * Categories: page + * Categories: twentytwentyfour_page * Keywords: starter * Block Types: core/post-content * Post Types: page, wp_template diff --git a/wp-content/themes/twentytwentyfour/readme.txt b/wp-content/themes/twentytwentyfour/readme.txt index c1837d4..50c9ff5 100644 --- a/wp-content/themes/twentytwentyfour/readme.txt +++ b/wp-content/themes/twentytwentyfour/readme.txt @@ -1,9 +1,9 @@ === Twenty Twenty-Four === Contributors: wordpressdotorg Requires at least: 6.4 -Tested up to: 6.4 +Tested up to: 6.5 Requires PHP: 7.0 -Stable tag: 1.0 +Stable tag: 1.1 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -13,6 +13,11 @@ Twenty Twenty-Four is designed to be flexible, versatile and applicable to any w == Changelog == += 1.1 = +* Released: April 2, 2024 + +https://wordpress.org/documentation/article/twenty-twenty-four-changelog/#Version_1.1 + = 1.0 = * Released: November 7, 2023 @@ -33,7 +38,33 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +This theme bundles the following third-party resources: + +=== Fonts === + +Cardo Font +Copyright (c) 2002-2011, David J. Perry (hospes02@scholarsfonts.net) +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Source: http://scholarsfonts.net + +Instrument Sans Font +Copyright 2022 The Instrument Sans Project Authors. +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Source: https://github.com/Instrument/instrument-sans + +Inter Font +Copyright 2020 The Inter Project Authors. +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Source: https://github.com/rsms/inter + +Jost Font +Copyright 2020 The Jost Project Authors. +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Source: https://github.com/indestructible-type/Jost + === Images === + License: CC0 https://creativecommons.org/publicdomain/zero/1.0/ museum.webp - https://www.rawpixel.com/image/3297419/free-photo-image-interior-hallway-architecture diff --git a/wp-content/themes/twentytwentyfour/screenshot.png b/wp-content/themes/twentytwentyfour/screenshot.png index 40c5b99..74fa4c7 100644 Binary files a/wp-content/themes/twentytwentyfour/screenshot.png and b/wp-content/themes/twentytwentyfour/screenshot.png differ diff --git a/wp-content/themes/twentytwentyfour/style.css b/wp-content/themes/twentytwentyfour/style.css index 6325914..75c9804 100644 --- a/wp-content/themes/twentytwentyfour/style.css +++ b/wp-content/themes/twentytwentyfour/style.css @@ -5,9 +5,9 @@ Author: the WordPress team Author URI: https://wordpress.org Description: Twenty Twenty-Four is designed to be flexible, versatile and applicable to any website. Its collection of templates and patterns tailor to different needs, such as presenting a business, blogging and writing or showcasing work. A multitude of possibilities open up with just a few adjustments to color and typography. Twenty Twenty-Four comes with style variations and full page designs to help speed up the site building process, is fully compatible with the site editor, and takes advantage of new design tools introduced in WordPress 6.4. Requires at least: 6.4 -Tested up to: 6.4 +Tested up to: 6.5 Requires PHP: 7.0 -Version: 1.0 +Version: 1.1 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: twentytwentyfour diff --git a/wp-content/themes/twentytwentyfour/styles/ember.json b/wp-content/themes/twentytwentyfour/styles/ember.json index 37e9c41..f4e612c 100644 --- a/wp-content/themes/twentytwentyfour/styles/ember.json +++ b/wp-content/themes/twentytwentyfour/styles/ember.json @@ -7,8 +7,8 @@ "duotone": [ { "colors": [ - "#FF3C00", - "#F4F0E6" + "#D73301", + "#F9F8F5" ], "slug": "duotone-2", "name": "Orange and white" @@ -78,12 +78,12 @@ ], "palette": [ { - "color": "#F4F0E6", + "color": "#F9F8F5", "name": "Base", "slug": "base" }, { - "color": "#FF3C00", + "color": "#D73301", "name": "Contrast / 2", "slug": "contrast-2" }, diff --git a/wp-content/themes/twentytwentyfour/theme.json b/wp-content/themes/twentytwentyfour/theme.json index 5de83df..fe6bd3b 100644 --- a/wp-content/themes/twentytwentyfour/theme.json +++ b/wp-content/themes/twentytwentyfour/theme.json @@ -247,7 +247,7 @@ { "fontFamily": "Iowan Old Style, Apple Garamond, Baskerville, Times New Roman, Droid Serif, Times, Source Serif Pro, serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol", "name": "System Serif", - "slug": "system-Serif" + "slug": "system-serif" } ], "fontSizes": [ @@ -795,9 +795,7 @@ }, "outline": { "color": "var(--wp--preset--color--contrast)", - "offset": "2px", - "style": "dotted", - "width": "1px" + "offset": "2px" }, "border": { "color": "var(--wp--preset--color--contrast-2)" @@ -908,7 +906,8 @@ "fontStyle": "normal", "fontWeight": "400", "lineHeight": "1.55" - } + }, + "css": ":where(.wp-site-blocks *:focus){outline-width:2px;outline-style:solid}" }, "templateParts": [ { @@ -941,12 +940,12 @@ { "name": "page-with-sidebar", "postTypes": ["page"], - "title": "Page With Sidebar" + "title": "Page with Sidebar" }, { "name": "page-wide", "postTypes": ["page"], - "title": "Page with wide Image" + "title": "Page with Wide Image" }, { "name": "single-with-sidebar", diff --git a/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Bold-Italic.woff2 b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Bold-Italic.woff2 index e8f4669..262239c 100644 Binary files a/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Bold-Italic.woff2 and b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Bold-Italic.woff2 differ diff --git a/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Bold.woff2 b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Bold.woff2 index 9a7696d..2787a75 100644 Binary files a/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Bold.woff2 and b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Bold.woff2 differ diff --git a/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Regular-Italic.woff2 b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Regular-Italic.woff2 index 773b727..6220e15 100644 Binary files a/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Regular-Italic.woff2 and b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Regular-Italic.woff2 differ diff --git a/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Regular.woff2 b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Regular.woff2 index b8f0bd8..9e5a00f 100644 Binary files a/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Regular.woff2 and b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Regular.woff2 differ diff --git a/wp-content/themes/twentytwentythree/readme.txt b/wp-content/themes/twentytwentythree/readme.txt index d2569f1..c845ea5 100644 --- a/wp-content/themes/twentytwentythree/readme.txt +++ b/wp-content/themes/twentytwentythree/readme.txt @@ -1,9 +1,9 @@ === Twenty Twenty-Three === Contributors: wordpressdotorg Requires at least: 6.1 -Tested up to: 6.4 +Tested up to: 6.5 Requires PHP: 5.6 -Stable tag: 1.3 +Stable tag: 1.4 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -15,6 +15,11 @@ Whether you want to build a complex or incredibly simple website, you can do it == Changelog == += 1.4 = +* Released: April 2, 2024 + +https://wordpress.org/documentation/article/twenty-twenty-three-changelog/#Version_1.4 + = 1.3 = * Released: November 7, 2023 @@ -37,7 +42,7 @@ https://wordpress.org/documentation/article/twenty-twenty-three-changelog/#Versi == Copyright == -Twenty Twenty-Three WordPress Theme, (C) 2022-2023 WordPress.org +Twenty Twenty-Three WordPress Theme, (C) 2022-2024 WordPress.org Twenty Twenty-Three is distributed under the terms of the GNU GPL. This program is free software: you can redistribute it and/or modify diff --git a/wp-content/themes/twentytwentythree/screenshot.png b/wp-content/themes/twentytwentythree/screenshot.png index d405921..dee93e4 100644 Binary files a/wp-content/themes/twentytwentythree/screenshot.png and b/wp-content/themes/twentytwentythree/screenshot.png differ diff --git a/wp-content/themes/twentytwentythree/style.css b/wp-content/themes/twentytwentythree/style.css index 2536a83..273c757 100644 --- a/wp-content/themes/twentytwentythree/style.css +++ b/wp-content/themes/twentytwentythree/style.css @@ -5,9 +5,9 @@ Author: the WordPress team Author URI: https://wordpress.org Description: Twenty Twenty-Three is designed to take advantage of the new design tools introduced in WordPress 6.1. With a clean, blank base as a starting point, this default theme includes ten diverse style variations created by members of the WordPress community. Whether you want to build a complex or incredibly simple website, you can do it quickly and intuitively through the bundled styles or dive into creation and full customization yourself. Requires at least: 6.1 -Tested up to: 6.4 +Tested up to: 6.5 Requires PHP: 5.6 -Version: 1.3 +Version: 1.4 License: GNU General Public License v2 or later License URI: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html Text Domain: twentytwentythree diff --git a/wp-content/themes/twentytwentythree/styles/aubergine.json b/wp-content/themes/twentytwentythree/styles/aubergine.json index 74ca7f8..235b04b2 100644 --- a/wp-content/themes/twentytwentythree/styles/aubergine.json +++ b/wp-content/themes/twentytwentythree/styles/aubergine.json @@ -86,8 +86,8 @@ "size": "10rem", "slug": "xx-large", "fluid": { - "min": "4rem", - "max": "20rem" + "min": "10rem", + "max": "16.3rem" } } ] diff --git a/wp-content/themes/twentytwentythree/styles/block-out.json b/wp-content/themes/twentytwentythree/styles/block-out.json index 28e831e..4b09b8e 100644 --- a/wp-content/themes/twentytwentythree/styles/block-out.json +++ b/wp-content/themes/twentytwentythree/styles/block-out.json @@ -76,7 +76,7 @@ { "fluid": { "max": "7rem", - "min": "4rem" + "min": "4.3rem" }, "size": "7rem", "slug": "xx-large" diff --git a/wp-content/themes/twentytwentythree/styles/pitch.json b/wp-content/themes/twentytwentythree/styles/pitch.json index 10c4212..583e28e 100644 --- a/wp-content/themes/twentytwentythree/styles/pitch.json +++ b/wp-content/themes/twentytwentythree/styles/pitch.json @@ -120,7 +120,7 @@ "size": "3.2rem", "fluid": { "min": "3.2rem", - "max": "5.653rem" + "max": "5.2rem" }, "slug": "xx-large", "name": "2X Large" diff --git a/wp-content/themes/twentytwentythree/styles/whisper.json b/wp-content/themes/twentytwentythree/styles/whisper.json index c93b7f4..3fd195e 100644 --- a/wp-content/themes/twentytwentythree/styles/whisper.json +++ b/wp-content/themes/twentytwentythree/styles/whisper.json @@ -72,10 +72,10 @@ }, { "fluid": { - "min": "3.375rem", - "max": "7rem" + "min": "3.5rem", + "max": "5.7rem" }, - "size": "7rem", + "size": "5.7rem", "slug": "xx-large" } ] diff --git a/wp-content/themes/twentytwentythree/theme.json b/wp-content/themes/twentytwentythree/theme.json index 68e17a8..32eb7ed 100644 --- a/wp-content/themes/twentytwentythree/theme.json +++ b/wp-content/themes/twentytwentythree/theme.json @@ -278,7 +278,7 @@ }, { "fluid": { - "min": "4rem", + "min": "6.1rem", "max": "10rem" }, "size": "10rem", @@ -730,7 +730,7 @@ { "area": "uncategorized", "name": "comments", - "title": "Comments" + "title": "Comments Template Part" }, { "area": "uncategorized", diff --git a/wp-content/themes/twentytwentytwo/assets/images/bird-on-black.jpg b/wp-content/themes/twentytwentytwo/assets/images/bird-on-black.jpg index 684affb..15194fe 100644 Binary files a/wp-content/themes/twentytwentytwo/assets/images/bird-on-black.jpg and b/wp-content/themes/twentytwentytwo/assets/images/bird-on-black.jpg differ diff --git a/wp-content/themes/twentytwentytwo/assets/images/bird-on-gray.jpg b/wp-content/themes/twentytwentytwo/assets/images/bird-on-gray.jpg index 4fde765..7f90926 100644 Binary files a/wp-content/themes/twentytwentytwo/assets/images/bird-on-gray.jpg and b/wp-content/themes/twentytwentytwo/assets/images/bird-on-gray.jpg differ diff --git a/wp-content/themes/twentytwentytwo/assets/images/bird-on-green.jpg b/wp-content/themes/twentytwentytwo/assets/images/bird-on-green.jpg index f1b5505..86f6265 100644 Binary files a/wp-content/themes/twentytwentytwo/assets/images/bird-on-green.jpg and b/wp-content/themes/twentytwentytwo/assets/images/bird-on-green.jpg differ diff --git a/wp-content/themes/twentytwentytwo/assets/images/bird-on-salmon.jpg b/wp-content/themes/twentytwentytwo/assets/images/bird-on-salmon.jpg index 727c70e..d854f6d 100644 Binary files a/wp-content/themes/twentytwentytwo/assets/images/bird-on-salmon.jpg and b/wp-content/themes/twentytwentytwo/assets/images/bird-on-salmon.jpg differ diff --git a/wp-content/themes/twentytwentytwo/assets/images/ducks.jpg b/wp-content/themes/twentytwentytwo/assets/images/ducks.jpg index 6c65eb4..ff8c3a2 100644 Binary files a/wp-content/themes/twentytwentytwo/assets/images/ducks.jpg and b/wp-content/themes/twentytwentytwo/assets/images/ducks.jpg differ diff --git a/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-a.jpg b/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-a.jpg index b533d0f..f2b0c1d 100644 Binary files a/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-a.jpg and b/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-a.jpg differ diff --git a/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-b.jpg b/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-b.jpg index 9314e9f..78df7e7 100644 Binary files a/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-b.jpg and b/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-b.jpg differ diff --git a/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-c.jpg b/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-c.jpg index 3797692..ffca803 100644 Binary files a/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-c.jpg and b/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-c.jpg differ diff --git a/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-salmon.jpg b/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-salmon.jpg index 86731b9..2811480 100644 Binary files a/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-salmon.jpg and b/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-salmon.jpg differ diff --git a/wp-content/themes/twentytwentytwo/assets/images/icon-bird.jpg b/wp-content/themes/twentytwentytwo/assets/images/icon-bird.jpg index dbfa90e..308cadc 100644 Binary files a/wp-content/themes/twentytwentytwo/assets/images/icon-bird.jpg and b/wp-content/themes/twentytwentytwo/assets/images/icon-bird.jpg differ diff --git a/wp-content/themes/twentytwentytwo/inc/block-patterns.php b/wp-content/themes/twentytwentytwo/inc/block-patterns.php index ce5e331..f47e26e 100644 --- a/wp-content/themes/twentytwentytwo/inc/block-patterns.php +++ b/wp-content/themes/twentytwentytwo/inc/block-patterns.php @@ -14,11 +14,11 @@ */ function twentytwentytwo_register_block_patterns() { $block_pattern_categories = array( - 'featured' => array( 'label' => __( 'Featured', 'twentytwentytwo' ) ), - 'footer' => array( 'label' => __( 'Footers', 'twentytwentytwo' ) ), - 'header' => array( 'label' => __( 'Headers', 'twentytwentytwo' ) ), - 'query' => array( 'label' => __( 'Query', 'twentytwentytwo' ) ), - 'pages' => array( 'label' => __( 'Pages', 'twentytwentytwo' ) ), + 'featured' => array( 'label' => __( 'Featured', 'twentytwentytwo' ) ), + 'footer' => array( 'label' => __( 'Footers', 'twentytwentytwo' ) ), + 'header' => array( 'label' => __( 'Headers', 'twentytwentytwo' ) ), + 'query' => array( 'label' => __( 'Query', 'twentytwentytwo' ) ), + 'twentytwentytwo_pages' => array( 'label' => __( 'Pages', 'twentytwentytwo' ) ), ); /** diff --git a/wp-content/themes/twentytwentytwo/inc/patterns/page-about-large-image-and-buttons.php b/wp-content/themes/twentytwentytwo/inc/patterns/page-about-large-image-and-buttons.php index 12d44e7..52dbd0e 100644 --- a/wp-content/themes/twentytwentytwo/inc/patterns/page-about-large-image-and-buttons.php +++ b/wp-content/themes/twentytwentytwo/inc/patterns/page-about-large-image-and-buttons.php @@ -4,7 +4,7 @@ */ return array( 'title' => __( 'About page with large image and buttons', 'twentytwentytwo' ), - 'categories' => array( 'pages', 'buttons' ), + 'categories' => array( 'twentytwentytwo_pages', 'buttons' ), 'content' => '
diff --git a/wp-content/themes/twentytwentytwo/inc/patterns/page-about-links-dark.php b/wp-content/themes/twentytwentytwo/inc/patterns/page-about-links-dark.php index ccb0ec2..943524f 100644 --- a/wp-content/themes/twentytwentytwo/inc/patterns/page-about-links-dark.php +++ b/wp-content/themes/twentytwentytwo/inc/patterns/page-about-links-dark.php @@ -4,7 +4,7 @@ */ return array( 'title' => __( 'About page links (dark)', 'twentytwentytwo' ), - 'categories' => array( 'pages', 'buttons' ), + 'categories' => array( 'twentytwentytwo_pages', 'buttons' ), 'content' => '