diff -r be944660c56a -r 3d72ae0968f4 wp/wp-includes/link-template.php --- a/wp/wp-includes/link-template.php Wed Sep 21 18:19:35 2022 +0200 +++ b/wp/wp-includes/link-template.php Tue Sep 27 16:37:53 2022 +0200 @@ -904,13 +904,13 @@ * * @since 2.5.0 * - * @param int $cat_id Category ID. - * @param string $feed Optional. Feed type. Possible values include 'rss2', 'atom'. - * Default is the value of get_default_feed(). - * @return string Link to the feed for the category specified by $cat_id. + * @param int|WP_Term|object $cat The ID or category object whose feed link will be retrieved. + * @param string $feed Optional. Feed type. Possible values include 'rss2', 'atom'. + * Default is the value of get_default_feed(). + * @return string Link to the feed for the category specified by `$cat`. */ -function get_category_feed_link( $cat_id, $feed = '' ) { - return get_term_feed_link( $cat_id, 'category', $feed ); +function get_category_feed_link( $cat, $feed = '' ) { + return get_term_feed_link( $cat, 'category', $feed ); } /** @@ -921,21 +921,25 @@ * * @since 3.0.0 * - * @param int $term_id Term ID. - * @param string $taxonomy Optional. Taxonomy of `$term_id`. Default 'category'. - * @param string $feed Optional. Feed type. Possible values include 'rss2', 'atom'. - * Default is the value of get_default_feed(). - * @return string|false Link to the feed for the term specified by $term_id and $taxonomy. + * @param int|WP_Term|object $term The ID or term object whose feed link will be retrieved. + * @param string $taxonomy Optional. Taxonomy of `$term_id`. + * @param string $feed Optional. Feed type. Possible values include 'rss2', 'atom'. + * Default is the value of get_default_feed(). + * @return string|false Link to the feed for the term specified by `$term` and `$taxonomy`. */ -function get_term_feed_link( $term_id, $taxonomy = 'category', $feed = '' ) { - $term_id = (int) $term_id; - - $term = get_term( $term_id, $taxonomy ); +function get_term_feed_link( $term, $taxonomy = '', $feed = '' ) { + if ( ! is_object( $term ) ) { + $term = (int) $term; + } + + $term = get_term( $term, $taxonomy ); if ( empty( $term ) || is_wp_error( $term ) ) { return false; } + $taxonomy = $term->taxonomy; + if ( empty( $feed ) ) { $feed = get_default_feed(); } @@ -944,7 +948,7 @@ if ( ! $permalink_structure ) { if ( 'category' === $taxonomy ) { - $link = home_url( "?feed=$feed&cat=$term_id" ); + $link = home_url( "?feed=$feed&cat=$term->term_id" ); } elseif ( 'post_tag' === $taxonomy ) { $link = home_url( "?feed=$feed&tag=$term->slug" ); } else { @@ -952,7 +956,7 @@ $link = home_url( "?feed=$feed&$t->query_var=$term->slug" ); } } else { - $link = get_term_link( $term_id, $term->taxonomy ); + $link = get_term_link( $term, $term->taxonomy ); if ( get_default_feed() == $feed ) { $feed_link = 'feed'; } else { @@ -1003,13 +1007,13 @@ * * @since 2.3.0 * - * @param int $tag_id Tag ID. - * @param string $feed Optional. Feed type. Possible values include 'rss2', 'atom'. - * Default is the value of get_default_feed(). - * @return string The feed permalink for the given tag. + * @param int|WP_Term|object $tag The ID or term object whose feed link will be retrieved. + * @param string $feed Optional. Feed type. Possible values include 'rss2', 'atom'. + * Default is the value of get_default_feed(). + * @return string The feed permalink for the given tag. */ -function get_tag_feed_link( $tag_id, $feed = '' ) { - return get_term_feed_link( $tag_id, 'post_tag', $feed ); +function get_tag_feed_link( $tag, $feed = '' ) { + return get_term_feed_link( $tag, 'post_tag', $feed ); } /** @@ -1017,11 +1021,11 @@ * * @since 2.7.0 * - * @param int $tag_id Tag ID. - * @param string $taxonomy Optional. Taxonomy slug. Default 'post_tag'. + * @param int|WP_Term|object $tag The ID or term object whose edit link will be retrieved. + * @param string $taxonomy Optional. Taxonomy slug. Default 'post_tag'. * @return string The edit tag link URL for the given tag. */ -function get_edit_tag_link( $tag_id, $taxonomy = 'post_tag' ) { +function get_edit_tag_link( $tag, $taxonomy = 'post_tag' ) { /** * Filters the edit link for a tag (or term in another taxonomy). * @@ -1029,7 +1033,7 @@ * * @param string $link The term edit link. */ - return apply_filters( 'get_edit_tag_link', get_edit_term_link( $tag_id, $taxonomy ) ); + return apply_filters( 'get_edit_tag_link', get_edit_term_link( $tag, $taxonomy ) ); } /** @@ -1062,28 +1066,29 @@ * @since 3.1.0 * @since 4.5.0 The `$taxonomy` parameter was made optional. * - * @param int $term_id Term ID. - * @param string $taxonomy Optional. Taxonomy. Defaults to the taxonomy of the term identified - * by `$term_id`. - * @param string $object_type Optional. The object type. Used to highlight the proper post type - * menu on the linked page. Defaults to the first object_type associated - * with the taxonomy. + * @param int|WP_Term|object $term The ID or term object whose edit link will be retrieved. + * @param string $taxonomy Optional. Taxonomy. Defaults to the taxonomy of the term identified + * by `$term`. + * @param string $object_type Optional. The object type. Used to highlight the proper post type + * menu on the linked page. Defaults to the first object_type associated + * with the taxonomy. * @return string|null The edit term link URL for the given term, or null on failure. */ -function get_edit_term_link( $term_id, $taxonomy = '', $object_type = '' ) { - $term = get_term( $term_id, $taxonomy ); +function get_edit_term_link( $term, $taxonomy = '', $object_type = '' ) { + $term = get_term( $term, $taxonomy ); if ( ! $term || is_wp_error( $term ) ) { return; } - $tax = get_taxonomy( $term->taxonomy ); - if ( ! $tax || ! current_user_can( 'edit_term', $term->term_id ) ) { + $tax = get_taxonomy( $term->taxonomy ); + $term_id = $term->term_id; + if ( ! $tax || ! current_user_can( 'edit_term', $term_id ) ) { return; } $args = array( 'taxonomy' => $taxonomy, - 'tag_ID' => $term->term_id, + 'tag_ID' => $term_id, ); if ( $object_type ) { @@ -1106,7 +1111,7 @@ * @param string $location The edit link. * @param int $term_id Term ID. * @param string $taxonomy Taxonomy name. - * @param string $object_type The object type (eg. the post type). + * @param string $object_type The object type. */ return apply_filters( 'get_edit_term_link', $location, $term_id, $taxonomy, $object_type ); } @@ -1116,16 +1121,18 @@ * * @since 3.1.0 * - * @param string $link Optional. Anchor text. If empty, default is 'Edit This'. Default empty. - * @param string $before Optional. Display before edit link. Default empty. - * @param string $after Optional. Display after edit link. Default empty. - * @param WP_Term $term Optional. Term object. If null, the queried object will be inspected. Default null. - * @param bool $echo Optional. Whether or not to echo the return. Default true. + * @param string $link Optional. Anchor text. If empty, default is 'Edit This'. Default empty. + * @param string $before Optional. Display before edit link. Default empty. + * @param string $after Optional. Display after edit link. Default empty. + * @param int|WP_Term|null $term Optional. Term ID or object. If null, the queried object will be inspected. Default null. + * @param bool $echo Optional. Whether or not to echo the return. Default true. * @return string|void HTML content. */ function edit_term_link( $link = '', $before = '', $after = '', $term = null, $echo = true ) { if ( is_null( $term ) ) { $term = get_queried_object(); + } else { + $term = get_term( $term ); } if ( ! $term ) { @@ -1619,7 +1626,7 @@ * @since 2.3.0 * * @param string $link Anchor tag for the edit link. - * @param int $comment_id Comment ID. + * @param string $comment_id Comment ID as a numeric string. * @param string $text Anchor text. */ echo $before . apply_filters( 'edit_comment_link', $link, $comment->comment_ID, $text ) . $after; @@ -1739,7 +1746,7 @@ * @param bool $in_same_term Optional. Whether post should be in a same taxonomy term. Default false. * @param int[]|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs. Default empty. * @param string $taxonomy Optional. Taxonomy, if $in_same_term is true. Default 'category'. - * @return null|string|WP_Post Post object if successful. Null if global $post is not set. Empty string if no + * @return WP_Post|null|string Post object if successful. Null if global $post is not set. Empty string if no * corresponding post exists. */ function get_previous_post( $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' ) { @@ -1754,7 +1761,7 @@ * @param bool $in_same_term Optional. Whether post should be in a same taxonomy term. Default false. * @param int[]|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs. Default empty. * @param string $taxonomy Optional. Taxonomy, if $in_same_term is true. Default 'category'. - * @return null|string|WP_Post Post object if successful. Null if global $post is not set. Empty string if no + * @return WP_Post|null|string Post object if successful. Null if global $post is not set. Empty string if no * corresponding post exists. */ function get_next_post( $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' ) { @@ -1774,7 +1781,7 @@ * @param int[]|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs. Default empty string. * @param bool $previous Optional. Whether to retrieve previous post. Default true * @param string $taxonomy Optional. Taxonomy, if $in_same_term is true. Default 'category'. - * @return null|string|WP_Post Post object if successful. Null if global $post is not set. Empty string if no + * @return WP_Post|null|string Post object if successful. Null if global $post is not set. Empty string if no * corresponding post exists. */ function get_adjacent_post( $in_same_term = false, $excluded_terms = '', $previous = true, $taxonomy = 'category' ) { @@ -1830,7 +1837,7 @@ if ( $in_same_term || ! empty( $excluded_terms ) ) { if ( $in_same_term ) { - $join .= " INNER JOIN $wpdb->term_relationships AS tr ON p.ID = tr.object_id INNER JOIN $wpdb->term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id"; + $join .= " INNER JOIN $wpdb->term_relationships AS tr ON p.ID = tr.object_id INNER JOIN $wpdb->term_taxonomy AS tt ON tr.term_taxonomy_id = tt.term_taxonomy_id"; $where .= $wpdb->prepare( 'AND tt.taxonomy = %s', $taxonomy ); if ( ! is_object_in_taxonomy( $post->post_type, $taxonomy ) ) { @@ -1872,7 +1879,7 @@ */ $private_states = get_post_stati( array( 'private' => true ) ); $where .= " AND ( p.post_status = 'publish'"; - foreach ( (array) $private_states as $state ) { + foreach ( $private_states as $state ) { if ( current_user_can( $read_private_cap ) ) { $where .= $wpdb->prepare( ' OR p.post_status = %s', $state ); } else { @@ -2899,7 +2906,7 @@ } $template = ' -