diff -r be944660c56a -r 3d72ae0968f4 wp/wp-includes/general-template.php --- a/wp/wp-includes/general-template.php Wed Sep 21 18:19:35 2022 +0200 +++ b/wp/wp-includes/general-template.php Tue Sep 27 16:37:53 2022 +0200 @@ -189,7 +189,7 @@ $templates[] = "{$slug}.php"; /** - * Fires before a template part is loaded. + * Fires before an attempt is made to locate and load a template part. * * @since 5.2.0 * @since 5.5.0 The `$args` parameter was added. @@ -576,25 +576,50 @@ */ $login_form_bottom = apply_filters( 'login_form_bottom', '', $args ); - $form = ' -
- ' . $login_form_top . ' -

- - -

-

- - -

- ' . $login_form_middle . ' - ' . ( $args['remember'] ? '

' : '' ) . ' -

- - -

- ' . $login_form_bottom . ' -
'; + $form = + sprintf( + '
', + esc_attr( $args['form_id'] ), + esc_url( site_url( 'wp-login.php', 'login_post' ) ) + ) . + $login_form_top . + sprintf( + '

+ + +

', + esc_attr( $args['id_username'] ), + esc_html( $args['label_username'] ), + esc_attr( $args['value_username'] ) + ) . + sprintf( + '

+ + +

', + esc_attr( $args['id_password'] ), + esc_html( $args['label_password'] ) + ) . + $login_form_middle . + ( $args['remember'] ? + sprintf( + '

', + esc_attr( $args['id_remember'] ), + ( $args['value_remember'] ? ' checked="checked"' : '' ), + esc_html( $args['label_remember'] ) + ) : '' + ) . + sprintf( + '

+ + +

', + esc_attr( $args['id_submit'] ), + esc_attr( $args['label_log_in'] ), + esc_url( $args['redirect'] ) + ) . + $login_form_bottom . + '
'; if ( $args['echo'] ) { echo $form; @@ -1290,7 +1315,7 @@ * Default '»'. * @param bool $display Optional. Whether to display or retrieve title. Default true. * @param string $seplocation Optional. Location of the separator ('left' or 'right'). - * @return string|null String on retrieve, null when displaying. + * @return string|void String when `$display` is false, nothing otherwise. */ function wp_title( $sep = '»', $display = true, $seplocation = '' ) { global $wp_locale; @@ -1351,9 +1376,11 @@ // If there's a month. if ( is_archive() && ! empty( $m ) ) { $my_year = substr( $m, 0, 4 ); - $my_month = $wp_locale->get_month( substr( $m, 4, 2 ) ); + $my_month = substr( $m, 4, 2 ); $my_day = (int) substr( $m, 6, 2 ); - $title = $my_year . ( $my_month ? $t_sep . $my_month : '' ) . ( $my_day ? $t_sep . $my_day : '' ); + $title = $my_year . + ( $my_month ? $t_sep . $wp_locale->get_month( $my_month ) : '' ) . + ( $my_day ? $t_sep . $my_day : '' ); } // If there's a year. @@ -1609,7 +1636,7 @@ * * @param string $prefix Optional. What to display before the title. * @param bool $display Optional. Whether to display or retrieve title. Default true. - * @return string|void Title when retrieving. + * @return string|false|void False if there's no valid title for the month. Title when retrieving. */ function single_month_title( $prefix = '', $display = true ) { global $wp_locale; @@ -2528,7 +2555,7 @@ * * @param string $format Optional. PHP date format. Defaults to the 'date_format' option. * @param int|WP_Post $post Optional. Post ID or WP_Post object. Default current post. - * @return string|false Date the current post was written. False on failure. + * @return string|int|false Date the current post was written. False on failure. */ function get_the_date( $format = '', $post = null ) { $post = get_post( $post ); @@ -2546,9 +2573,9 @@ * * @since 3.0.0 * - * @param string $the_date The formatted date. + * @param string|int $the_date Formatted date string or Unix timestamp if `$format` is 'U' or 'G'. * @param string $format PHP date format. - * @param int|WP_Post $post The post object or ID. + * @param WP_Post $post The post object. */ return apply_filters( 'get_the_date', $the_date, $format, $post ); } @@ -2672,10 +2699,10 @@ * * @since 1.5.0 * - * @param string $the_time The formatted time. + * @param string|int $the_time Formatted date string or Unix timestamp if `$format` is 'U' or 'G'. * @param string $format Format to use for retrieving the time the post * was written. Accepts 'G', 'U', or PHP date format. - * @param int|WP_Post $post WP_Post object or ID. + * @param WP_Post $post Post object. */ return apply_filters( 'get_the_time', $the_time, $format, $post ); } @@ -2729,10 +2756,10 @@ * * @since 2.6.0 * - * @param string $time The formatted time. - * @param string $format Format to use for retrieving the time the post was written. - * Accepts 'G', 'U', or PHP date format. Default 'U'. - * @param bool $gmt Whether to retrieve the GMT time. Default false. + * @param string|int $time Formatted date string or Unix timestamp if `$format` is 'U' or 'G'. + * @param string $format Format to use for retrieving the time the post was written. + * Accepts 'G', 'U', or PHP date format. + * @param bool $gmt Whether to retrieve the GMT time. */ return apply_filters( 'get_post_time', $time, $format, $gmt ); } @@ -3126,9 +3153,16 @@ $id = 0; $post = get_post( $id ); - if ( comments_open() || pings_open() || $post->comment_count > 0 ) { - $title = sprintf( $args['singletitle'], get_bloginfo( 'name' ), $args['separator'], the_title_attribute( array( 'echo' => false ) ) ); - $href = get_post_comments_feed_link( $post->ID ); + /** This filter is documented in wp-includes/general-template.php */ + $show_comments_feed = apply_filters( 'feed_links_show_comments_feed', true ); + + if ( $show_comments_feed && ( comments_open() || pings_open() || $post->comment_count > 0 ) ) { + $title = sprintf( $args['singletitle'], get_bloginfo( 'name' ), $args['separator'], the_title_attribute( array( 'echo' => false ) ) ); + $feed_link = get_post_comments_feed_link( $post->ID ); + + if ( $feed_link ) { + $href = $feed_link; + } } } elseif ( is_post_type_archive() ) { $post_type = get_query_var( 'post_type' ); @@ -3197,12 +3231,14 @@ } /** - * Displays a referrer strict-origin-when-cross-origin meta tag. - * - * Outputs a referrer origin-when-cross-origin meta tag that tells the browser not to send the full - * url as a referrer to other sites when cross-origin assets are loaded. - * - * Typical usage is as a wp_head callback. add_action( 'wp_head', 'wp_strict_cross_origin_referrer' ); + * Displays a referrer `strict-origin-when-cross-origin` meta tag. + * + * Outputs a referrer `strict-origin-when-cross-origin` meta tag that tells the browser not to send + * the full URL as a referrer to other sites when cross-origin assets are loaded. + * + * Typical usage is as a {@see 'wp_head'} callback: + * + * add_action( 'wp_head', 'wp_strict_cross_origin_referrer' ); * * @since 5.7.0 */ @@ -3551,8 +3587,8 @@ * * @type string $type The MIME type of the file to be edited. * @type string $file Filename to be edited. Extension is used to sniff the type. Can be supplied as alternative to `$type` param. - * @type WP_Theme $theme Theme being edited when on theme editor. - * @type string $plugin Plugin being edited when on plugin editor. + * @type WP_Theme $theme Theme being edited when on the theme file editor. + * @type string $plugin Plugin being edited when on the plugin file editor. * @type array $codemirror Additional CodeMirror setting overrides. * @type array $csslint CSSLint rule overrides. * @type array $jshint JSHint rule overrides. @@ -3642,8 +3678,8 @@ * * @type string $type The MIME type of the file to be edited. * @type string $file Filename to be edited. Extension is used to sniff the type. Can be supplied as alternative to `$type` param. - * @type WP_Theme $theme Theme being edited when on theme editor. - * @type string $plugin Plugin being edited when on plugin editor. + * @type WP_Theme $theme Theme being edited when on the theme file editor. + * @type string $plugin Plugin being edited when on the plugin file editor. * @type array $codemirror Additional CodeMirror setting overrides. * @type array $csslint CSSLint rule overrides. * @type array $jshint JSHint rule overrides. @@ -3979,8 +4015,8 @@ * * @type string $type The MIME type of the file to be edited. * @type string $file Filename being edited. - * @type WP_Theme $theme Theme being edited when on theme editor. - * @type string $plugin Plugin being edited when on plugin editor. + * @type WP_Theme $theme Theme being edited when on the theme file editor. + * @type string $plugin Plugin being edited when on the plugin file editor. * @type array $codemirror Additional CodeMirror setting overrides. * @type array $csslint CSSLint rule overrides. * @type array $jshint JSHint rule overrides. @@ -4763,14 +4799,16 @@ /** * Outputs the HTML checked attribute. * - * Compares the first two arguments and if identical marks as checked + * Compares the first two arguments and if identical marks as checked. * * @since 1.0.0 * - * @param mixed $checked One of the values to compare - * @param mixed $current (true) The other value to compare if not just true - * @param bool $echo Whether to echo or just return the string - * @return string HTML attribute or empty string + * @param mixed $checked One of the values to compare. + * @param mixed $current Optional. The other value to compare if not just true. + * Default true. + * @param bool $echo Optional. Whether to echo or just return the string. + * Default true. + * @return string HTML attribute or empty string. */ function checked( $checked, $current = true, $echo = true ) { return __checked_selected_helper( $checked, $current, $echo, 'checked' ); @@ -4779,14 +4817,16 @@ /** * Outputs the HTML selected attribute. * - * Compares the first two arguments and if identical marks as selected + * Compares the first two arguments and if identical marks as selected. * * @since 1.0.0 * - * @param mixed $selected One of the values to compare - * @param mixed $current (true) The other value to compare if not just true - * @param bool $echo Whether to echo or just return the string - * @return string HTML attribute or empty string + * @param mixed $selected One of the values to compare. + * @param mixed $current Optional. The other value to compare if not just true. + * Default true. + * @param bool $echo Optional. Whether to echo or just return the string. + * Default true. + * @return string HTML attribute or empty string. */ function selected( $selected, $current = true, $echo = true ) { return __checked_selected_helper( $selected, $current, $echo, 'selected' ); @@ -4795,14 +4835,16 @@ /** * Outputs the HTML disabled attribute. * - * Compares the first two arguments and if identical marks as disabled + * Compares the first two arguments and if identical marks as disabled. * * @since 3.0.0 * - * @param mixed $disabled One of the values to compare - * @param mixed $current (true) The other value to compare if not just true - * @param bool $echo Whether to echo or just return the string - * @return string HTML attribute or empty string + * @param mixed $disabled One of the values to compare. + * @param mixed $current Optional. The other value to compare if not just true. + * Default true. + * @param bool $echo Optional. Whether to echo or just return the string. + * Default true. + * @return string HTML attribute or empty string. */ function disabled( $disabled, $current = true, $echo = true ) { return __checked_selected_helper( $disabled, $current, $echo, 'disabled' ); @@ -4811,32 +4853,44 @@ /** * Outputs the HTML readonly attribute. * - * Compares the first two arguments and if identical marks as readonly - * - * @since 4.9.0 - * - * @param mixed $readonly One of the values to compare - * @param mixed $current (true) The other value to compare if not just true - * @param bool $echo Whether to echo or just return the string - * @return string HTML attribute or empty string + * Compares the first two arguments and if identical marks as readonly. + * + * @since 5.9.0 + * + * @param mixed $readonly One of the values to compare. + * @param mixed $current Optional. The other value to compare if not just true. + * Default true. + * @param bool $echo Optional. Whether to echo or just return the string. + * Default true. + * @return string HTML attribute or empty string. */ -function readonly( $readonly, $current = true, $echo = true ) { +function wp_readonly( $readonly, $current = true, $echo = true ) { return __checked_selected_helper( $readonly, $current, $echo, 'readonly' ); } +/* + * Include a compat `readonly()` function on PHP < 8.1. Since PHP 8.1, + * `readonly` is a reserved keyword and cannot be used as a function name. + * In order to avoid PHP parser errors, this function was extracted + * to a separate file and is only included conditionally on PHP < 8.1. + */ +if ( PHP_VERSION_ID < 80100 ) { + require_once __DIR__ . '/php-compat/readonly.php'; +} + /** * Private helper function for checked, selected, disabled and readonly. * - * Compares the first two arguments and if identical marks as $type + * Compares the first two arguments and if identical marks as `$type`. * * @since 2.8.0 * @access private * - * @param mixed $helper One of the values to compare - * @param mixed $current (true) The other value to compare if not just true - * @param bool $echo Whether to echo or just return the string - * @param string $type The type of checked|selected|disabled|readonly we are doing - * @return string HTML attribute or empty string + * @param mixed $helper One of the values to compare. + * @param mixed $current The other value to compare if not just true. + * @param bool $echo Whether to echo or just return the string. + * @param string $type The type of checked|selected|disabled|readonly we are doing. + * @return string HTML attribute or empty string. */ function __checked_selected_helper( $helper, $current, $echo, $type ) { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore if ( (string) $helper === (string) $current ) {