diff --git a/wp-includes/general-template.php b/wp-includes/general-template.php index 1a23cb4316..f53934966e 100644 --- a/wp-includes/general-template.php +++ b/wp-includes/general-template.php @@ -3106,7 +3106,12 @@ function feed_links( $args = array() ) { * @param bool $show Whether to display the posts feed link. Default true. */ if ( apply_filters( 'feed_links_show_posts_feed', true ) ) { - echo '\n"; + printf( + '' . "\n", + feed_content_type(), + esc_attr( sprintf( $args['feedtitle'], get_bloginfo( 'name' ), $args['separator'] ) ), + esc_url( get_feed_link() ) + ); } /** @@ -3117,7 +3122,12 @@ function feed_links( $args = array() ) { * @param bool $show Whether to display the comments feed link. Default true. */ if ( apply_filters( 'feed_links_show_comments_feed', true ) ) { - echo '\n"; + printf( + '' . "\n", + feed_content_type(), + esc_attr( sprintf( $args['comstitle'], get_bloginfo( 'name' ), $args['separator'] ) ), + esc_url( get_feed_link( 'comments_' . get_default_feed() ) ) + ); } } @@ -3157,8 +3167,29 @@ function feed_links_extra( $args = array() ) { /** 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 ) ) ); + /** + * Filters whether to display the post comments feed link. + * + * This filter allows to enable or disable the feed link for a singular post + * in a way that is independent of {@see 'feed_links_show_comments_feed'} + * (which controls the global comments feed). The result of that filter + * is accepted as a parameter. + * + * @since 6.1.0 + * + * @param bool $show_comments_feed Whether to display the post comments feed link. Defaults to + * the {@see 'feed_links_show_comments_feed'} filter result. + */ + $show_post_comments_feed = apply_filters( 'feed_links_extra_show_post_comments_feed', $show_comments_feed ); + + if ( $show_post_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 ) { @@ -3166,48 +3197,159 @@ function feed_links_extra( $args = array() ) { } } } elseif ( is_post_type_archive() ) { - $post_type = get_query_var( 'post_type' ); - if ( is_array( $post_type ) ) { - $post_type = reset( $post_type ); + /** + * Filters whether to display the post type archive feed link. + * + * @since 6.1.0 + * + * @param bool $show Whether to display the post type archive feed link. Default true. + */ + $show_post_type_archive_feed = apply_filters( 'feed_links_extra_show_post_type_archive_feed', true ); + + if ( $show_post_type_archive_feed ) { + $post_type = get_query_var( 'post_type' ); + + if ( is_array( $post_type ) ) { + $post_type = reset( $post_type ); + } + + $post_type_obj = get_post_type_object( $post_type ); + + $title = sprintf( + $args['posttypetitle'], + get_bloginfo( 'name' ), + $args['separator'], + $post_type_obj->labels->name + ); + + $href = get_post_type_archive_feed_link( $post_type_obj->name ); } - - $post_type_obj = get_post_type_object( $post_type ); - $title = sprintf( $args['posttypetitle'], get_bloginfo( 'name' ), $args['separator'], $post_type_obj->labels->name ); - $href = get_post_type_archive_feed_link( $post_type_obj->name ); } elseif ( is_category() ) { - $term = get_queried_object(); + /** + * Filters whether to display the category feed link. + * + * @since 6.1.0 + * + * @param bool $show Whether to display the category feed link. Default true. + */ + $show_category_feed = apply_filters( 'feed_links_extra_show_category_feed', true ); - if ( $term ) { - $title = sprintf( $args['cattitle'], get_bloginfo( 'name' ), $args['separator'], $term->name ); - $href = get_category_feed_link( $term->term_id ); + if ( $show_category_feed ) { + $term = get_queried_object(); + + if ( $term ) { + $title = sprintf( + $args['cattitle'], + get_bloginfo( 'name' ), + $args['separator'], + $term->name + ); + + $href = get_category_feed_link( $term->term_id ); + } } } elseif ( is_tag() ) { - $term = get_queried_object(); + /** + * Filters whether to display the tag feed link. + * + * @since 6.1.0 + * + * @param bool $show Whether to display the tag feed link. Default true. + */ + $show_tag_feed = apply_filters( 'feed_links_extra_show_tag_feed', true ); - if ( $term ) { - $title = sprintf( $args['tagtitle'], get_bloginfo( 'name' ), $args['separator'], $term->name ); - $href = get_tag_feed_link( $term->term_id ); + if ( $show_tag_feed ) { + $term = get_queried_object(); + + if ( $term ) { + $title = sprintf( + $args['tagtitle'], + get_bloginfo( 'name' ), + $args['separator'], + $term->name + ); + + $href = get_tag_feed_link( $term->term_id ); + } } } elseif ( is_tax() ) { - $term = get_queried_object(); + /** + * Filters whether to display the custom taxonomy feed link. + * + * @since 6.1.0 + * + * @param bool $show Whether to display the custom taxonomy feed link. Default true. + */ + $show_tax_feed = apply_filters( 'feed_links_extra_show_tax_feed', true ); - if ( $term ) { - $tax = get_taxonomy( $term->taxonomy ); - $title = sprintf( $args['taxtitle'], get_bloginfo( 'name' ), $args['separator'], $term->name, $tax->labels->singular_name ); - $href = get_term_feed_link( $term->term_id, $term->taxonomy ); + if ( $show_tax_feed ) { + $term = get_queried_object(); + + if ( $term ) { + $tax = get_taxonomy( $term->taxonomy ); + + $title = sprintf( + $args['taxtitle'], + get_bloginfo( 'name' ), + $args['separator'], + $term->name, + $tax->labels->singular_name + ); + + $href = get_term_feed_link( $term->term_id, $term->taxonomy ); + } } } elseif ( is_author() ) { - $author_id = (int) get_query_var( 'author' ); + /** + * Filters whether to display the author feed link. + * + * @since 6.1.0 + * + * @param bool $show Whether to display the author feed link. Default true. + */ + $show_author_feed = apply_filters( 'feed_links_extra_show_author_feed', true ); - $title = sprintf( $args['authortitle'], get_bloginfo( 'name' ), $args['separator'], get_the_author_meta( 'display_name', $author_id ) ); - $href = get_author_feed_link( $author_id ); + if ( $show_author_feed ) { + $author_id = (int) get_query_var( 'author' ); + + $title = sprintf( + $args['authortitle'], + get_bloginfo( 'name' ), + $args['separator'], + get_the_author_meta( 'display_name', $author_id ) + ); + + $href = get_author_feed_link( $author_id ); + } } elseif ( is_search() ) { - $title = sprintf( $args['searchtitle'], get_bloginfo( 'name' ), $args['separator'], get_search_query( false ) ); - $href = get_search_feed_link(); + /** + * Filters whether to display the search results feed link. + * + * @since 6.1.0 + * + * @param bool $show Whether to display the search results feed link. Default true. + */ + $show_search_feed = apply_filters( 'feed_links_extra_show_search_feed', true ); + + if ( $show_search_feed ) { + $title = sprintf( + $args['searchtitle'], + get_bloginfo( 'name' ), + $args['separator'], + get_search_query( false ) + ); + + $href = get_search_feed_link(); + } } if ( isset( $title ) && isset( $href ) ) { - echo '' . "\n"; + printf( + '' . "\n", + feed_content_type(), + esc_attr( $title ), + esc_url( $href ) + ); } } @@ -3218,7 +3360,10 @@ function feed_links_extra( $args = array() ) { * @since 2.0.0 */ function rsd_link() { - echo '' . "\n"; + printf( + '' . "\n", + esc_url( site_url( 'xmlrpc.php?rsd', 'rpc' ) ) + ); } /** @@ -3228,7 +3373,10 @@ function rsd_link() { * @since 2.3.1 */ function wlwmanifest_link() { - echo ' ' . "\n"; + printf( + '' . "\n", + includes_url( 'wlwmanifest.xml' ) + ); } /** diff --git a/wp-includes/version.php b/wp-includes/version.php index 18178d3845..ddfe73086a 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.1-alpha-54160'; +$wp_version = '6.1-alpha-54161'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.