summaryrefslogtreecommitdiffstats
path: root/wp-content
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 07:57:26 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 07:57:26 +0000
commit30883c26bdceb9eaf32c8d4a1b0c1bce223b5226 (patch)
tree39a02e2aeb21ab5b7923c6f5757d66d55b708912 /wp-content
parentAdding upstream version 6.4.3+dfsg1. (diff)
downloadwordpress-30883c26bdceb9eaf32c8d4a1b0c1bce223b5226.tar.xz
wordpress-30883c26bdceb9eaf32c8d4a1b0c1bce223b5226.zip
Adding upstream version 6.5+dfsg1.upstream/6.5+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'wp-content')
-rw-r--r--wp-content/plugins/akismet/akismet.php4
-rw-r--r--wp-content/plugins/akismet/class.akismet-admin.php53
-rw-r--r--wp-content/plugins/akismet/class.akismet-rest-api.php179
-rw-r--r--wp-content/plugins/akismet/class.akismet.php65
-rw-r--r--wp-content/plugins/akismet/readme.txt9
-rw-r--r--wp-content/plugins/akismet/views/config.php68
-rw-r--r--wp-content/plugins/akismet/views/notice.php10
-rw-r--r--wp-content/themes/twentytwentyfour/functions.php2
-rw-r--r--wp-content/themes/twentytwentyfour/parts/header.html6
-rw-r--r--wp-content/themes/twentytwentyfour/patterns/footer.php18
-rw-r--r--wp-content/themes/twentytwentyfour/patterns/hidden-portfolio-hero.php2
-rw-r--r--wp-content/themes/twentytwentyfour/patterns/page-about-business.php2
-rw-r--r--wp-content/themes/twentytwentyfour/patterns/page-home-blogging.php2
-rw-r--r--wp-content/themes/twentytwentyfour/patterns/page-home-business.php2
-rw-r--r--wp-content/themes/twentytwentyfour/patterns/page-home-portfolio-gallery.php2
-rw-r--r--wp-content/themes/twentytwentyfour/patterns/page-home-portfolio.php2
-rw-r--r--wp-content/themes/twentytwentyfour/patterns/page-newsletter-landing.php2
-rw-r--r--wp-content/themes/twentytwentyfour/patterns/page-portfolio-overview.php2
-rw-r--r--wp-content/themes/twentytwentyfour/patterns/page-rsvp-landing.php2
-rw-r--r--wp-content/themes/twentytwentyfour/readme.txt35
-rw-r--r--wp-content/themes/twentytwentyfour/screenshot.pngbin956898 -> 940864 bytes
-rw-r--r--wp-content/themes/twentytwentyfour/style.css4
-rw-r--r--wp-content/themes/twentytwentyfour/styles/ember.json8
-rw-r--r--wp-content/themes/twentytwentyfour/theme.json13
-rw-r--r--wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Bold-Italic.woff2bin19200 -> 32784 bytes
-rw-r--r--wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Bold.woff2bin18212 -> 29272 bytes
-rw-r--r--wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Regular-Italic.woff2bin19004 -> 32492 bytes
-rw-r--r--wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Regular.woff2bin18096 -> 29272 bytes
-rw-r--r--wp-content/themes/twentytwentythree/readme.txt11
-rw-r--r--wp-content/themes/twentytwentythree/screenshot.pngbin95166 -> 74030 bytes
-rw-r--r--wp-content/themes/twentytwentythree/style.css4
-rw-r--r--wp-content/themes/twentytwentythree/styles/aubergine.json4
-rw-r--r--wp-content/themes/twentytwentythree/styles/block-out.json2
-rw-r--r--wp-content/themes/twentytwentythree/styles/pitch.json2
-rw-r--r--wp-content/themes/twentytwentythree/styles/whisper.json6
-rw-r--r--wp-content/themes/twentytwentythree/theme.json4
-rw-r--r--wp-content/themes/twentytwentytwo/assets/images/bird-on-black.jpgbin28901 -> 31329 bytes
-rw-r--r--wp-content/themes/twentytwentytwo/assets/images/bird-on-gray.jpgbin33742 -> 35687 bytes
-rw-r--r--wp-content/themes/twentytwentytwo/assets/images/bird-on-green.jpgbin46484 -> 50998 bytes
-rw-r--r--wp-content/themes/twentytwentytwo/assets/images/bird-on-salmon.jpgbin84360 -> 88729 bytes
-rw-r--r--wp-content/themes/twentytwentytwo/assets/images/ducks.jpgbin366525 -> 373006 bytes
-rw-r--r--wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-a.jpgbin35500 -> 42366 bytes
-rw-r--r--wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-b.jpgbin58207 -> 66761 bytes
-rw-r--r--wp-content/themes/twentytwentytwo/assets/images/flight-path-on-gray-c.jpgbin74238 -> 84870 bytes
-rw-r--r--wp-content/themes/twentytwentytwo/assets/images/flight-path-on-salmon.jpgbin32835 -> 35888 bytes
-rw-r--r--wp-content/themes/twentytwentytwo/assets/images/icon-bird.jpgbin4911 -> 5245 bytes
-rw-r--r--wp-content/themes/twentytwentytwo/inc/block-patterns.php10
-rw-r--r--wp-content/themes/twentytwentytwo/inc/patterns/page-about-large-image-and-buttons.php2
-rw-r--r--wp-content/themes/twentytwentytwo/inc/patterns/page-about-links-dark.php2
-rw-r--r--wp-content/themes/twentytwentytwo/inc/patterns/page-about-links.php2
-rw-r--r--wp-content/themes/twentytwentytwo/inc/patterns/page-about-media-left.php2
-rw-r--r--wp-content/themes/twentytwentytwo/inc/patterns/page-about-media-right.php2
-rw-r--r--wp-content/themes/twentytwentytwo/inc/patterns/page-about-simple-dark.php2
-rw-r--r--wp-content/themes/twentytwentytwo/inc/patterns/page-about-solid-color.php2
-rw-r--r--wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-and-text.php2
-rw-r--r--wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-text-and-video.php2
-rw-r--r--wp-content/themes/twentytwentytwo/inc/patterns/page-layout-two-columns.php2
-rw-r--r--wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts-right.php2
-rw-r--r--wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts.php2
-rw-r--r--wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-grid-posts.php2
-rw-r--r--wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-poster.php2
-rw-r--r--wp-content/themes/twentytwentytwo/readme.txt11
-rw-r--r--wp-content/themes/twentytwentytwo/screenshot.pngbin162290 -> 160517 bytes
-rw-r--r--wp-content/themes/twentytwentytwo/style.css4
-rw-r--r--wp-content/themes/twentytwentytwo/theme.json1
65 files changed, 437 insertions, 142 deletions
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 <strong>protect your blog from spam</strong>. 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(
<span><?php esc_html_e( 'Statistics', 'akismet' ); ?></span>
</h2>
- <?php if ( $stat_totals && isset( $stat_totals['all'] ) && (int) $stat_totals['all']->spam > 0 ) : ?>
<div class="akismet-section-header__actions">
<a href="<?php echo esc_url( Akismet_Admin::get_page_url( 'stats' ) ); ?>">
<?php esc_html_e( 'Detailed stats', 'akismet' ); ?>
@@ -38,43 +37,36 @@ $kses_allow_link_href = array(
</div>
</div> <!-- close akismet-section-header -->
- <div class="akismet-new-snapshot">
- <?php /* name attribute on iframe is used as a cache-buster here to force Firefox to load the new style charts: https://bugzilla.mozilla.org/show_bug.cgi?id=356558 */ ?>
- <div class="akismet-new-snapshot__chart">
- <iframe id="stats-iframe" allowtransparency="true" scrolling="no" frameborder="0" style="width: 100%; height: 220px; overflow: hidden;" src="<?php echo esc_url( sprintf( 'https://tools.akismet.com/1.0/snapshot.php?blog=%s&token=%s&height=200&locale=%s&is_redecorated=1', rawurlencode( get_option( 'home' ) ), rawurlencode( Akismet::get_access_token() ), get_locale() ) ); ?>" name="<?php echo esc_attr( 'snapshot-' . filemtime( __FILE__ ) ); ?>" title="<?php echo esc_attr__( 'Akismet stats' ); ?>"></iframe>
- </div>
- <ul class="akismet-new-snapshot__list">
- <li class="akismet-new-snapshot__item">
- <h3 class="akismet-new-snapshot__header"><?php esc_html_e( 'Past six months', 'akismet' ); ?></h3>
- <span class="akismet-new-snapshot__number"><?php echo number_format( $stat_totals['6-months']->spam ); ?></span>
- <span class="akismet-new-snapshot__text"><?php echo esc_html( _n( 'Spam blocked', 'Spam blocked', $stat_totals['6-months']->spam, 'akismet' ) ); ?></span>
- </li>
- <li class="akismet-new-snapshot__item">
- <h3 class="akismet-new-snapshot__header"><?php esc_html_e( 'All time', 'akismet' ); ?></h3>
- <span class="akismet-new-snapshot__number"><?php echo number_format( $stat_totals['all']->spam ); ?></span>
- <span class="akismet-new-snapshot__text"><?php echo esc_html( _n( 'Spam blocked', 'Spam blocked', $stat_totals['all']->spam, 'akismet' ) ); ?></span>
- </li>
- <li class="akismet-new-snapshot__item">
- <h3 class="akismet-new-snapshot__header"><?php esc_html_e( 'Accuracy', 'akismet' ); ?></h3>
- <span class="akismet-new-snapshot__number"><?php echo floatval( $stat_totals['all']->accuracy ); ?>%</span>
- <span class="akismet-new-snapshot__text">
- <?php
- /* translators: %s: number of spam missed by Akismet */
- echo esc_html( sprintf( _n( '%s missed spam', '%s missed spam', $stat_totals['all']->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 ) ) );
- ?>
- </span>
- </li>
- </ul>
- </div> <!-- close akismet-new-snapshot -->
-
- <?php else : ?>
- </div> <!-- close akismet-section-header -->
- <div class="inside">
- <p class="akismet-awaiting-stats"><?php esc_html_e( 'Akismet is active and ready to stop spam. Your site&#8217;s spam statistics will be displayed here.', 'akismet' ); ?></p>
- </div>
- <?php endif; ?>
+ <div class="akismet-new-snapshot">
+ <?php /* name attribute on iframe is used as a cache-buster here to force Firefox to load the new style charts: https://bugzilla.mozilla.org/show_bug.cgi?id=356558 */ ?>
+ <div class="akismet-new-snapshot__chart">
+ <iframe id="stats-iframe" allowtransparency="true" scrolling="no" frameborder="0" style="width: 100%; height: 220px; overflow: hidden;" src="<?php echo esc_url( sprintf( 'https://tools.akismet.com/1.0/snapshot.php?blog=%s&token=%s&height=200&locale=%s&is_redecorated=1', rawurlencode( get_option( 'home' ) ), rawurlencode( Akismet::get_access_token() ), get_locale() ) ); ?>" name="<?php echo esc_attr( 'snapshot-' . filemtime( __FILE__ ) ); ?>" title="<?php echo esc_attr__( 'Akismet stats' ); ?>"></iframe>
+ </div>
+ <ul class="akismet-new-snapshot__list">
+ <li class="akismet-new-snapshot__item">
+ <h3 class="akismet-new-snapshot__header"><?php esc_html_e( 'Past six months', 'akismet' ); ?></h3>
+ <span class="akismet-new-snapshot__number"><?php echo number_format( $stat_totals['6-months']->spam ); ?></span>
+ <span class="akismet-new-snapshot__text"><?php echo esc_html( _n( 'Spam blocked', 'Spam blocked', $stat_totals['6-months']->spam, 'akismet' ) ); ?></span>
+ </li>
+ <li class="akismet-new-snapshot__item">
+ <h3 class="akismet-new-snapshot__header"><?php esc_html_e( 'All time', 'akismet' ); ?></h3>
+ <span class="akismet-new-snapshot__number"><?php echo number_format( $stat_totals['all']->spam ); ?></span>
+ <span class="akismet-new-snapshot__text"><?php echo esc_html( _n( 'Spam blocked', 'Spam blocked', $stat_totals['all']->spam, 'akismet' ) ); ?></span>
+ </li>
+ <li class="akismet-new-snapshot__item">
+ <h3 class="akismet-new-snapshot__header"><?php esc_html_e( 'Accuracy', 'akismet' ); ?></h3>
+ <span class="akismet-new-snapshot__number"><?php echo floatval( $stat_totals['all']->accuracy ); ?>%</span>
+ <span class="akismet-new-snapshot__text">
+ <?php
+ /* translators: %s: number of spam missed by Akismet */
+ echo esc_html( sprintf( _n( '%s missed spam', '%s missed spam', $stat_totals['all']->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 ) ) );
+ ?>
+ </span>
+ </li>
+ </ul>
+ </div> <!-- close akismet-new-snapshot -->
</div> <!-- close akismet-card -->
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 );
<?php elseif ( $type === 'no-sub' ) : ?>
<div class="akismet-alert is-bad">
<h3 class="akismet-alert__heading"><?php esc_html_e( 'You don&#8217;t have an Akismet plan.', 'akismet' ); ?></h3>
+ <p><?php echo esc_html__( 'Your API key must have an Akismet plan before it can protect your site from spam.', 'akismet' ); ?></p>
<p>
<?php
- /* translators: the placeholder is a clickable URL to the Akismet account upgrade page. */
- echo wp_kses( sprintf( __( 'In 2012, Akismet began using subscription plans for all accounts (even free ones). A plan has not been assigned to your account, and we&#8217;d appreciate it if you&#8217;d <a href="%s" target="_blank">sign into your account</a> and choose one.', 'akismet' ), esc_url( 'https://akismet.com/pricing' ) ), $kses_allow_link );
- ?>
- <br /><br />
- <?php
- /* translators: The placeholder is a URL to the Akismet contact form. */
- echo wp_kses( sprintf( __( 'Please <a href="%s" target="_blank">contact our support team</a> 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 <a href="%s" target="_blank">choose a plan</a> to get started with Akismet.', 'akismet' ), esc_url( 'https://akismet.com/pricing' ) ), $kses_allow_link );
?>
</p>
</div>
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 @@
</div>
<!-- /wp:group -->
- <!-- wp:navigation {"layout":{"type":"flex","justifyContent":"right","orientation":"horizontal"},"style":{"spacing":{"margin":{"top":"0"},"blockGap":"var:preset|spacing|20"},"layout":{"selfStretch":"fit","flexSize":null}}} /-->
+ <!-- wp:group {"layout":{"type":"flex","flexWrap":"wrap","justifyContent":"left"}} -->
+ <div class="wp-block-group">
+ <!-- wp:navigation {"layout":{"type":"flex","justifyContent":"right","orientation":"horizontal"},"style":{"spacing":{"margin":{"top":"0"},"blockGap":"var:preset|spacing|20"},"layout":{"selfStretch":"fit","flexSize":null}}} /-->
+ </div>
+ <!-- /wp:group -->
</div>
<!-- /wp:group -->
</div>
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 @@
<!-- wp:navigation {"overlayMenu":"never","layout":{"type":"flex","orientation":"vertical"},"style":{"typography":{"fontStyle":"normal","fontWeight":"400"},"spacing":{"blockGap":"var:preset|spacing|10"}},"fontSize":"small","ariaLabel":"<?php esc_attr_e( 'About', 'twentytwentyfour' ); ?>"} -->
- <!-- wp:navigation-link {"label":"Team","url":"#"} /-->
- <!-- wp:navigation-link {"label":"History","url":"#"} /-->
- <!-- wp:navigation-link {"label":"Careers","url":"#"} /-->
+ <!-- wp:navigation-link {"label":"<?php esc_html_e( 'Team', 'twentytwentyfour' ); ?>","url":"#"} /-->
+ <!-- wp:navigation-link {"label":"<?php esc_html_e( 'History', 'twentytwentyfour' ); ?>","url":"#"} /-->
+ <!-- wp:navigation-link {"label":"<?php esc_html_e( 'Careers', 'twentytwentyfour' ); ?>","url":"#"} /-->
<!-- /wp:navigation -->
@@ -68,9 +68,9 @@
<!-- wp:navigation {"overlayMenu":"never","layout":{"type":"flex","orientation":"vertical"},"style":{"typography":{"fontStyle":"normal","fontWeight":"400"},"spacing":{"blockGap":"var:preset|spacing|10"}},"fontSize":"small","ariaLabel":"<?php esc_attr_e( 'Privacy', 'twentytwentyfour' ); ?>"} -->
- <!-- wp:navigation-link {"label":"Privacy Policy","url":"#"} /-->
- <!-- wp:navigation-link {"label":"Terms and Conditions","url":"#"} /-->
- <!-- wp:navigation-link {"label":"Contact Us","url":"#"} /-->
+ <!-- wp:navigation-link {"label":"<?php esc_html_e( 'Privacy Policy', 'twentytwentyfour' ); ?>","url":"#"} /-->
+ <!-- wp:navigation-link {"label":"<?php esc_html_e( 'Terms and Conditions', 'twentytwentyfour' ); ?>","url":"#"} /-->
+ <!-- wp:navigation-link {"label":"<?php esc_html_e( 'Contact Us', 'twentytwentyfour' ); ?>","url":"#"} /-->
<!-- /wp:navigation -->
@@ -90,9 +90,9 @@
<!-- wp:navigation {"overlayMenu":"never","layout":{"type":"flex","orientation":"vertical"},"style":{"typography":{"fontStyle":"normal","fontWeight":"400"},"spacing":{"blockGap":"var:preset|spacing|10"}},"fontSize":"small","ariaLabel":"<?php esc_attr_e( 'Social Media', 'twentytwentyfour' ); ?>"} -->
- <!-- wp:navigation-link {"label":"Facebook","url":"#"} /-->
- <!-- wp:navigation-link {"label":"Instagram","url":"#"} /-->
- <!-- wp:navigation-link {"label":"Twitter/X","url":"#"} /-->
+ <!-- wp:navigation-link {"label":"<?php esc_html_e( 'Facebook', 'twentytwentyfour' ); ?>","url":"#"} /-->
+ <!-- wp:navigation-link {"label":"<?php esc_html_e( 'Instagram', 'twentytwentyfour' ); ?>","url":"#"} /-->
+ <!-- wp:navigation-link {"label":"<?php esc_html_e( 'Twitter/X', 'twentytwentyfour' ); ?>","url":"#"} /-->
<!-- /wp:navigation -->
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 @@
<!-- wp:group {"align":"wide","layout":{"type":"constrained"}} -->
<div class="wp-block-group alignwide">
<!-- wp:heading {"level":1,"align":"wide","style":{"typography":{"lineHeight":"1.2"}},"fontSize":"xx-large"} -->
- <h1 class="wp-block-heading alignwide has-xx-large-font-size" style="line-height:1.2"><?php echo wp_kses_post( __( 'I’m <em>Leia Acosta</em>, a passionate photographer who finds inspiration in capturing the fleeting beauty of life.' ) ); ?></h1>
+ <h1 class="wp-block-heading alignwide has-xx-large-font-size" style="line-height:1.2"><?php echo wp_kses_post( __( 'I’m <em>Leia Acosta</em>, a passionate photographer who finds inspiration in capturing the fleeting beauty of life.', 'twentytwentyfour' ) ); ?></h1>
<!-- /wp:heading -->
</div>
<!-- /wp:group -->
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
--- a/wp-content/themes/twentytwentyfour/screenshot.png
+++ b/wp-content/themes/twentytwentyfour/screenshot.png
Binary files 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
--- 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
Binary files 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
--- a/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Bold.woff2
+++ b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Bold.woff2
Binary files 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
--- 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
Binary files 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
--- a/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Regular.woff2
+++ b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Regular.woff2
Binary files 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
--- a/wp-content/themes/twentytwentythree/screenshot.png
+++ b/wp-content/themes/twentytwentythree/screenshot.png
Binary files 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
--- a/wp-content/themes/twentytwentytwo/assets/images/bird-on-black.jpg
+++ b/wp-content/themes/twentytwentytwo/assets/images/bird-on-black.jpg
Binary files 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
--- a/wp-content/themes/twentytwentytwo/assets/images/bird-on-gray.jpg
+++ b/wp-content/themes/twentytwentytwo/assets/images/bird-on-gray.jpg
Binary files 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
--- a/wp-content/themes/twentytwentytwo/assets/images/bird-on-green.jpg
+++ b/wp-content/themes/twentytwentytwo/assets/images/bird-on-green.jpg
Binary files 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
--- a/wp-content/themes/twentytwentytwo/assets/images/bird-on-salmon.jpg
+++ b/wp-content/themes/twentytwentytwo/assets/images/bird-on-salmon.jpg
Binary files 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
--- a/wp-content/themes/twentytwentytwo/assets/images/ducks.jpg
+++ b/wp-content/themes/twentytwentytwo/assets/images/ducks.jpg
Binary files 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
--- 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
Binary files 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
--- 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
Binary files 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
--- 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
Binary files 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
--- a/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-salmon.jpg
+++ b/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-salmon.jpg
Binary files 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
--- a/wp-content/themes/twentytwentytwo/assets/images/icon-bird.jpg
+++ b/wp-content/themes/twentytwentytwo/assets/images/icon-bird.jpg
Binary files 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' => '<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var(--wp--custom--spacing--small, 1.25rem)","bottom":"var(--wp--custom--spacing--small, 1.25rem)"}}},"layout":{"inherit":true}} -->
<div class="wp-block-group alignfull" style="padding-top:var(--wp--custom--spacing--small, 1.25rem);padding-bottom:var(--wp--custom--spacing--small, 1.25rem)"><!-- wp:image {"align":"wide","width":2100,"height":1260,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image alignwide size-full is-resized"><img src="' . esc_url( get_template_directory_uri() ) . '/assets/images/flight-path-on-gray-b.jpg" alt="" width="2100" height="1260"/></figure>
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' => '<!-- wp:group {"align":"full","style":{"elements":{"link":{"color":{"text":"var:preset|color|background"}}},"spacing":{"padding":{"top":"10rem","bottom":"10rem"}}},"backgroundColor":"primary","textColor":"background","layout":{"inherit":false,"contentSize":"400px"}} -->
<div class="wp-block-group alignfull has-background-color has-primary-background-color has-text-color has-background has-link-color" style="padding-top:10rem;padding-bottom:10rem;"><!-- wp:group -->
<div class="wp-block-group">
diff --git a/wp-content/themes/twentytwentytwo/inc/patterns/page-about-links.php b/wp-content/themes/twentytwentytwo/inc/patterns/page-about-links.php
index 997cf03..3cf2717 100644
--- a/wp-content/themes/twentytwentytwo/inc/patterns/page-about-links.php
+++ b/wp-content/themes/twentytwentytwo/inc/patterns/page-about-links.php
@@ -4,7 +4,7 @@
*/
return array(
'title' => __( 'About page links', 'twentytwentytwo' ),
- 'categories' => array( 'pages', 'buttons' ),
+ 'categories' => array( 'twentytwentytwo_pages', 'buttons' ),
'content' => '<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"10rem","bottom":"10rem"}}},"layout":{"inherit":false,"contentSize":"400px"}} -->
<div class="wp-block-group alignfull" style="padding-top:10rem;padding-bottom:10rem;"><!-- wp:image {"align":"center","width":100,"height":100,"sizeSlug":"full","linkDestination":"none","className":"is-style-rounded"} -->
<div class="wp-block-image is-style-rounded"><figure class="aligncenter size-full is-resized"><img src="' . esc_url( get_template_directory_uri() ) . '/assets/images/icon-bird.jpg" alt="' . esc_attr__( 'Logo featuring a flying bird', 'twentytwentytwo' ) . '" width="100" height="100"/></figure></div>
diff --git a/wp-content/themes/twentytwentytwo/inc/patterns/page-about-media-left.php b/wp-content/themes/twentytwentytwo/inc/patterns/page-about-media-left.php
index ea80594..f5c769a 100644
--- a/wp-content/themes/twentytwentytwo/inc/patterns/page-about-media-left.php
+++ b/wp-content/themes/twentytwentytwo/inc/patterns/page-about-media-left.php
@@ -4,7 +4,7 @@
*/
return array(
'title' => __( 'About page with media on the left', 'twentytwentytwo' ),
- 'categories' => array( 'pages' ),
+ 'categories' => array( 'twentytwentytwo_pages' ),
'content' => '<!-- wp:media-text {"align":"full","mediaType":"image","imageFill":true,"focalPoint":{"x":"0.63","y":"0.16"},"backgroundColor":"foreground","className":"alignfull is-image-fill has-background-color has-text-color has-background has-link-color"} -->
<div class="wp-block-media-text alignfull is-stacked-on-mobile is-image-fill has-background-color has-text-color has-background has-link-color has-foreground-background-color has-background"><figure class="wp-block-media-text__media" style="background-image:url(' . esc_url( get_template_directory_uri() ) . '/assets/images/bird-on-salmon.jpg);background-position:63% 16%"><img src="' . esc_url( get_template_directory_uri() ) . '/assets/images/bird-on-salmon.jpg" alt="' . esc_attr__( 'Image of a bird on a branch', 'twentytwentytwo' ) . '"/></figure><div class="wp-block-media-text__content"><!-- wp:spacer {"height":32} -->
<div style="height:32px" aria-hidden="true" class="wp-block-spacer"></div>
diff --git a/wp-content/themes/twentytwentytwo/inc/patterns/page-about-media-right.php b/wp-content/themes/twentytwentytwo/inc/patterns/page-about-media-right.php
index 2493d5d..8f29115 100644
--- a/wp-content/themes/twentytwentytwo/inc/patterns/page-about-media-right.php
+++ b/wp-content/themes/twentytwentytwo/inc/patterns/page-about-media-right.php
@@ -4,7 +4,7 @@
*/
return array(
'title' => __( 'About page with media on the right', 'twentytwentytwo' ),
- 'categories' => array( 'pages' ),
+ 'categories' => array( 'twentytwentytwo_pages' ),
'content' => '<!-- wp:media-text {"align":"full","mediaPosition":"right","mediaLink":"' . esc_url( get_template_directory_uri() ) . '/assets/images/bird-on-black.jpg","mediaType":"image","style":{"elements":{"link":{"color":{"text":"var:preset|color|background"}}}},"backgroundColor":"foreground","textColor":"background"} -->
<div class="wp-block-media-text alignfull has-media-on-the-right is-stacked-on-mobile has-background-color has-foreground-background-color has-text-color has-background has-link-color"><figure class="wp-block-media-text__media"><img src="' . esc_url( get_template_directory_uri() ) . '/assets/images/bird-on-black.jpg" alt="' . esc_attr__( 'An image of a bird flying', 'twentytwentytwo' ) . '"/></figure><div class="wp-block-media-text__content"><!-- wp:spacer {"height":32} -->
<div style="height:32px" aria-hidden="true" class="wp-block-spacer"></div>
diff --git a/wp-content/themes/twentytwentytwo/inc/patterns/page-about-simple-dark.php b/wp-content/themes/twentytwentytwo/inc/patterns/page-about-simple-dark.php
index 131a48b..fe07159 100644
--- a/wp-content/themes/twentytwentytwo/inc/patterns/page-about-simple-dark.php
+++ b/wp-content/themes/twentytwentytwo/inc/patterns/page-about-simple-dark.php
@@ -4,7 +4,7 @@
*/
return array(
'title' => __( 'Simple dark about page', 'twentytwentytwo' ),
- 'categories' => array( 'pages' ),
+ 'categories' => array( 'twentytwentytwo_pages' ),
'content' => '<!-- wp:cover {"overlayColor":"foreground","minHeight":100,"minHeightUnit":"vh","contentPosition":"center center","align":"full","style":{"spacing":{"padding":{"top":"max(1.25rem, 8vw)","right":"max(1.25rem, 8vw)","bottom":"max(1.25rem, 8vw)","left":"max(1.25rem, 8vw)"}}}} -->
<div class="wp-block-cover alignfull has-foreground-background-color has-background-dim" style="padding-top:max(1.25rem, 8vw);padding-right:max(1.25rem, 8vw);padding-bottom:max(1.25rem, 8vw);padding-left:max(1.25rem, 8vw);min-height:100vh"><div class="wp-block-cover__inner-container"><!-- wp:navigation {"layout":{"type":"flex","setCascadingProperties":true,"justifyContent":"right"},"overlayMenu":"always"} -->
<!-- wp:page-list {"isNavigationChild":true,"showSubmenuIcon":true,"openSubmenusOnClick":false} /-->
diff --git a/wp-content/themes/twentytwentytwo/inc/patterns/page-about-solid-color.php b/wp-content/themes/twentytwentytwo/inc/patterns/page-about-solid-color.php
index df8903d..6c07725 100644
--- a/wp-content/themes/twentytwentytwo/inc/patterns/page-about-solid-color.php
+++ b/wp-content/themes/twentytwentytwo/inc/patterns/page-about-solid-color.php
@@ -4,7 +4,7 @@
*/
return array(
'title' => __( 'About page on solid color background', 'twentytwentytwo' ),
- 'categories' => array( 'pages' ),
+ 'categories' => array( 'twentytwentytwo_pages' ),
'content' => '<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"1.25rem","right":"1.25rem","bottom":"1.25rem","left":"1.25rem"}}}} -->
<div class="wp-block-group alignfull" style="padding-top:1.25rem;padding-right:1.25rem;padding-bottom:1.25rem;padding-left:1.25rem"><!-- wp:cover {"overlayColor":"secondary","minHeight":80,"minHeightUnit":"vh","isDark":false,"align":"full"} -->
<div class="wp-block-cover alignfull is-light" style="min-height:80vh"><span aria-hidden="true" class="has-secondary-background-color has-background-dim-100 wp-block-cover__gradient-background has-background-dim"></span><div class="wp-block-cover__inner-container"><!-- wp:group {"layout":{"inherit":false,"contentSize":"400px"}} -->
diff --git a/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-and-text.php b/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-and-text.php
index eec6e0d..20e08e0 100644
--- a/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-and-text.php
+++ b/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-and-text.php
@@ -4,7 +4,7 @@
*/
return array(
'title' => __( 'Page layout with image and text', 'twentytwentytwo' ),
- 'categories' => array( 'pages' ),
+ 'categories' => array( 'twentytwentytwo_pages' ),
'content' => '<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var(--wp--custom--spacing--large, 8rem)","bottom":"2rem"}}},"layout":{"inherit":true}} -->
<div class="wp-block-group alignfull" style="padding-top:var(--wp--custom--spacing--large, 8rem);padding-bottom:2rem"><!-- wp:heading {"align":"wide","style":{"typography":{"fontSize":"clamp(4rem, 8vw, 7.5rem)","lineHeight":"1.15","fontWeight":"300"}}} -->
<h2 class="alignwide" style="font-size:clamp(4rem, 8vw, 7.5rem);font-weight:300;line-height:1.15">' . wp_kses_post( __( '<em>Watching Birds </em><br><em>in the Garden</em>', 'twentytwentytwo' ) ) . '</h2>
diff --git a/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-text-and-video.php b/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-text-and-video.php
index bfb4e6e..0ee87f1 100644
--- a/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-text-and-video.php
+++ b/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-text-and-video.php
@@ -4,7 +4,7 @@
*/
return array(
'title' => __( 'Page layout with image, text and video', 'twentytwentytwo' ),
- 'categories' => array( 'pages' ),
+ 'categories' => array( 'twentytwentytwo_pages' ),
'content' => '<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var(--wp--custom--spacing--large, 8rem)","bottom":"var(--wp--custom--spacing--large, 8rem)"}}},"backgroundColor":"primary","textColor":"background"} -->
<div class="wp-block-group alignfull has-background-color has-primary-background-color has-text-color has-background" style="padding-top:var(--wp--custom--spacing--large, 8rem);padding-bottom:var(--wp--custom--spacing--large, 8rem)"><!-- wp:group {"layout":{"inherit":true}} -->
<div class="wp-block-group"><!-- wp:heading {"level":1,"align":"wide","style":{"typography":{"fontSize":"clamp(3rem, 6vw, 4.5rem)"}}} -->
diff --git a/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-two-columns.php b/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-two-columns.php
index 2a27dfe..b24c9c5 100644
--- a/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-two-columns.php
+++ b/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-two-columns.php
@@ -4,7 +4,7 @@
*/
return array(
'title' => __( 'Page layout with two columns', 'twentytwentytwo' ),
- 'categories' => array( 'pages' ),
+ 'categories' => array( 'twentytwentytwo_pages' ),
'content' => '<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var(--wp--custom--spacing--large, 8rem)","bottom":"var(--wp--custom--spacing--large, 8rem)"}}},"layout":{"inherit":true}} -->
<div class="wp-block-group alignfull" style="padding-top:var(--wp--custom--spacing--large, 8rem);padding-bottom:var(--wp--custom--spacing--large, 8rem);"><!-- wp:heading {"level":1,"align":"wide","style":{"typography":{"fontSize":"clamp(4rem, 15vw, 12.5rem)","lineHeight":"1","fontWeight":"200"}}} -->
<h1 class="alignwide" style="font-size:clamp(4rem, 15vw, 12.5rem);font-weight:200;line-height:1">' . wp_kses_post( __( '<em>Goldfinch </em><br><em>&amp; Sparrow</em>', 'twentytwentytwo' ) ) . '</h1>
diff --git a/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts-right.php b/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts-right.php
index 1601925..070aef0 100644
--- a/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts-right.php
+++ b/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts-right.php
@@ -4,7 +4,7 @@
*/
return array(
'title' => __( 'Blog posts with right sidebar', 'twentytwentytwo' ),
- 'categories' => array( 'pages' ),
+ 'categories' => array( 'twentytwentytwo_pages' ),
'content' => '<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var(--wp--custom--spacing--small, 1.25rem)","bottom":"var(--wp--custom--spacing--small, 1.25rem)"}}},"layout":{"inherit":true}} -->
<div class="wp-block-group alignfull" style="padding-top:var(--wp--custom--spacing--small, 1.25rem);padding-bottom:var(--wp--custom--spacing--small, 1.25rem)"><!-- wp:group {"align":"wide","style":{"spacing":{"padding":{"bottom":"2rem","top":"0px","right":"0px","left":"0px"}}},"layout":{"type":"flex","justifyContent":"space-between"}} -->
<div class="wp-block-group alignwide" style="padding-top:0px;padding-right:0px;padding-bottom:2rem;padding-left:0px"><!-- wp:group {"layout":{"type":"flex"}} -->
diff --git a/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts.php b/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts.php
index c40b207..e535a81 100644
--- a/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts.php
+++ b/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts.php
@@ -4,7 +4,7 @@
*/
return array(
'title' => __( 'Blog posts with left sidebar', 'twentytwentytwo' ),
- 'categories' => array( 'pages' ),
+ 'categories' => array( 'twentytwentytwo_pages' ),
'content' => '<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var(--wp--custom--spacing--small, 1.25rem)","bottom":"var(--wp--custom--spacing--small, 1.25rem)"}}},"layout":{"inherit":true}} -->
<div class="wp-block-group alignfull" style="padding-top:var(--wp--custom--spacing--small, 1.25rem);padding-bottom:var(--wp--custom--spacing--small, 1.25rem)"><!-- wp:columns {"align":"wide","style":{"spacing":{"margin":{"top":"0px","bottom":"0px"},"blockGap":"5%"},"elements":{"link":{"color":{"text":"var:preset|color|primary"}}}},"textColor":"primary"} -->
<div class="wp-block-columns alignwide has-primary-color has-text-color has-link-color" style="margin-top:0px;margin-bottom:0px"><!-- wp:column {"width":"33.33%"} -->
diff --git a/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-grid-posts.php b/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-grid-posts.php
index 3a4f037..b4aa6a5 100644
--- a/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-grid-posts.php
+++ b/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-grid-posts.php
@@ -4,7 +4,7 @@
*/
return array(
'title' => __( 'Grid of posts with left sidebar', 'twentytwentytwo' ),
- 'categories' => array( 'pages' ),
+ 'categories' => array( 'twentytwentytwo_pages' ),
'content' => '<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var(--wp--custom--spacing--small, 1.25rem)","bottom":"var(--wp--custom--spacing--small, 1.25rem)"}}},"layout":{"inherit":true}} -->
<div class="wp-block-group alignfull" style="padding-top:var(--wp--custom--spacing--small, 1.25rem);padding-bottom:var(--wp--custom--spacing--small, 1.25rem)"><!-- wp:columns {"align":"wide","style":{"spacing":{"margin":{"top":"0px","bottom":"0px"}}}} -->
<div class="wp-block-columns alignwide" style="margin-top:0px;margin-bottom:0px"><!-- wp:column {"width":"30%"} -->
diff --git a/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-poster.php b/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-poster.php
index bc744b1..9cbcef2 100644
--- a/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-poster.php
+++ b/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-poster.php
@@ -4,7 +4,7 @@
*/
return array(
'title' => __( 'Poster with right sidebar', 'twentytwentytwo' ),
- 'categories' => array( 'pages' ),
+ 'categories' => array( 'twentytwentytwo_pages' ),
'content' => '<!-- wp:group {"align":"full","layout":{"inherit":true}} -->
<div class="wp-block-group alignfull"><!-- wp:columns {"align":"wide","style":{"spacing":{"blockGap":"5%"}}} -->
<div class="wp-block-columns alignwide"><!-- wp:column {"width":"70%"} -->
diff --git a/wp-content/themes/twentytwentytwo/readme.txt b/wp-content/themes/twentytwentytwo/readme.txt
index 9a3c25b..61bbb8f 100644
--- a/wp-content/themes/twentytwentytwo/readme.txt
+++ b/wp-content/themes/twentytwentytwo/readme.txt
@@ -1,9 +1,9 @@
=== Twenty Twenty-Two ===
Contributors: wordpressdotorg
Requires at least: 5.9
-Tested up to: 6.4
+Tested up to: 6.5
Requires PHP: 5.6
-Stable tag: 1.6
+Stable tag: 1.7
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -17,6 +17,11 @@ Whether you’re building a single-page website, a blog, a business website, or
== Changelog ==
+= 1.7 =
+* Released: April 2, 2024
+
+https://wordpress.org/documentation/article/twenty-twenty-two-changelog/#Version_1.7
+
= 1.6 =
* Released: November 7, 2023
@@ -54,7 +59,7 @@ https://wordpress.org/documentation/article/twenty-twenty-two-changelog/#Version
== Copyright ==
-Twenty Twenty-Two WordPress Theme, 2021-2023 WordPress.org
+Twenty Twenty-Two WordPress Theme, 2021-2024 WordPress.org
Twenty Twenty-Two 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/twentytwentytwo/screenshot.png b/wp-content/themes/twentytwentytwo/screenshot.png
index 9e8710c..0bba95b 100644
--- a/wp-content/themes/twentytwentytwo/screenshot.png
+++ b/wp-content/themes/twentytwentytwo/screenshot.png
Binary files differ
diff --git a/wp-content/themes/twentytwentytwo/style.css b/wp-content/themes/twentytwentytwo/style.css
index 5190836..e1e26e9 100644
--- a/wp-content/themes/twentytwentytwo/style.css
+++ b/wp-content/themes/twentytwentytwo/style.css
@@ -5,9 +5,9 @@ Author: the WordPress team
Author URI: https://wordpress.org/
Description: Built on a solidly designed foundation, Twenty Twenty-Two embraces the idea that everyone deserves a truly unique website. The theme’s subtle styles are inspired by the diversity and versatility of birds: its typography is lightweight yet strong, its color palette is drawn from nature, and its layout elements sit gently on the page. The true richness of Twenty Twenty-Two lies in its opportunity for customization. The theme is built to take advantage of the Site Editor features introduced in WordPress 5.9, which means that colors, typography, and the layout of every single page on your site can be customized to suit your vision. It also includes dozens of block patterns, opening the door to a wide range of professionally designed layouts in just a few clicks. Whether you’re building a single-page website, a blog, a business website, or a portfolio, Twenty Twenty-Two will help you create a site that is uniquely yours.
Requires at least: 5.9
-Tested up to: 6.4
+Tested up to: 6.5
Requires PHP: 5.6
-Version: 1.6
+Version: 1.7
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentytwo
diff --git a/wp-content/themes/twentytwentytwo/theme.json b/wp-content/themes/twentytwentytwo/theme.json
index 41ffb72..ec9ff86 100644
--- a/wp-content/themes/twentytwentytwo/theme.json
+++ b/wp-content/themes/twentytwentytwo/theme.json
@@ -1,4 +1,5 @@
{
+ "$schema": "https://schemas.wp.org/trunk/theme.json",
"version": 2,
"customTemplates": [
{