--- 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 = '
- <form name="' . $args['form_id'] . '" id="' . $args['form_id'] . '" action="' . esc_url( site_url( 'wp-login.php', 'login_post' ) ) . '" method="post">
- ' . $login_form_top . '
- <p class="login-username">
- <label for="' . esc_attr( $args['id_username'] ) . '">' . esc_html( $args['label_username'] ) . '</label>
- <input type="text" name="log" id="' . esc_attr( $args['id_username'] ) . '" class="input" value="' . esc_attr( $args['value_username'] ) . '" size="20" />
- </p>
- <p class="login-password">
- <label for="' . esc_attr( $args['id_password'] ) . '">' . esc_html( $args['label_password'] ) . '</label>
- <input type="password" name="pwd" id="' . esc_attr( $args['id_password'] ) . '" class="input" value="" size="20" />
- </p>
- ' . $login_form_middle . '
- ' . ( $args['remember'] ? '<p class="login-remember"><label><input name="rememberme" type="checkbox" id="' . esc_attr( $args['id_remember'] ) . '" value="forever"' . ( $args['value_remember'] ? ' checked="checked"' : '' ) . ' /> ' . esc_html( $args['label_remember'] ) . '</label></p>' : '' ) . '
- <p class="login-submit">
- <input type="submit" name="wp-submit" id="' . esc_attr( $args['id_submit'] ) . '" class="button button-primary" value="' . esc_attr( $args['label_log_in'] ) . '" />
- <input type="hidden" name="redirect_to" value="' . esc_url( $args['redirect'] ) . '" />
- </p>
- ' . $login_form_bottom . '
- </form>';
+ $form =
+ sprintf(
+ '<form name="%1$s" id="%1$s" action="%2$s" method="post">',
+ esc_attr( $args['form_id'] ),
+ esc_url( site_url( 'wp-login.php', 'login_post' ) )
+ ) .
+ $login_form_top .
+ sprintf(
+ '<p class="login-username">
+ <label for="%1$s">%2$s</label>
+ <input type="text" name="log" id="%1$s" autocomplete="username" class="input" value="%3$s" size="20" />
+ </p>',
+ esc_attr( $args['id_username'] ),
+ esc_html( $args['label_username'] ),
+ esc_attr( $args['value_username'] )
+ ) .
+ sprintf(
+ '<p class="login-password">
+ <label for="%1$s">%2$s</label>
+ <input type="password" name="pwd" id="%1$s" autocomplete="current-password" class="input" value="" size="20" />
+ </p>',
+ esc_attr( $args['id_password'] ),
+ esc_html( $args['label_password'] )
+ ) .
+ $login_form_middle .
+ ( $args['remember'] ?
+ sprintf(
+ '<p class="login-remember"><label><input name="rememberme" type="checkbox" id="%1$s" value="forever"%2$s /> %3$s</label></p>',
+ esc_attr( $args['id_remember'] ),
+ ( $args['value_remember'] ? ' checked="checked"' : '' ),
+ esc_html( $args['label_remember'] )
+ ) : ''
+ ) .
+ sprintf(
+ '<p class="login-submit">
+ <input type="submit" name="wp-submit" id="%1$s" class="button button-primary" value="%2$s" />
+ <input type="hidden" name="redirect_to" value="%3$s" />
+ </p>',
+ esc_attr( $args['id_submit'] ),
+ esc_attr( $args['label_log_in'] ),
+ esc_url( $args['redirect'] )
+ ) .
+ $login_form_bottom .
+ '</form>';
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 ) {