get_adjacent_post_link() WordPress Function
The get_adjacent_post_link() function is used to retrieve the link to the next or previous post, relative to the current post. This function is used within the WordPress loop.
get_adjacent_post_link( string $format, string $link, bool $in_same_term = false, int[]|string $excluded_terms = '', bool $previous = true, string $taxonomy = 'category' ) #
Retrieves the adjacent post link.
Description
Can be either next post link or previous.
Parameters
- $format
(string)(Required)Link anchor format.
- $link
(string)(Required)Link permalink format.
- $in_same_term
(bool)(Optional) Whether link should be in a same taxonomy term.
Default value: false
- $excluded_terms
(int[]|string)(Optional) Array or comma-separated list of excluded terms IDs.
Default value: ''
- $previous
(bool)(Optional) Whether to display link to previous or next post.
Default value: true
- $taxonomy
(string)(Optional) Taxonomy, if $in_same_term is true.
Default value: 'category'
Return
(string) The link URL of the previous or next post in relation to the current post.
Source
File: wp-includes/link-template.php
function get_adjacent_post_link( $format, $link, $in_same_term = false, $excluded_terms = '', $previous = true, $taxonomy = 'category' ) { if ( $previous && is_attachment() ) { $post = get_post( get_post()->post_parent ); } else { $post = get_adjacent_post( $in_same_term, $excluded_terms, $previous, $taxonomy ); } if ( ! $post ) { $output = ''; } else { $title = $post->post_title; if ( empty( $post->post_title ) ) { $title = $previous ? __( 'Previous Post' ) : __( 'Next Post' ); } /** This filter is documented in wp-includes/post-template.php */ $title = apply_filters( 'the_title', $title, $post->ID ); $date = mysql2date( get_option( 'date_format' ), $post->post_date ); $rel = $previous ? 'prev' : 'next'; $string = '<a href="' . get_permalink( $post ) . '" rel="' . $rel . '">'; $inlink = str_replace( '%title', $title, $link ); $inlink = str_replace( '%date', $date, $inlink ); $inlink = $string . $inlink . '</a>'; $output = str_replace( '%link', $inlink, $format ); } $adjacent = $previous ? 'previous' : 'next'; /** * Filters the adjacent post link. * * The dynamic portion of the hook name, `$adjacent`, refers to the type * of adjacency, 'next' or 'previous'. * * Possible hook names include: * * - `next_post_link` * - `previous_post_link` * * @since 2.6.0 * @since 4.2.0 Added the `$adjacent` parameter. * * @param string $output The adjacent post link. * @param string $format Link anchor format. * @param string $link Link permalink format. * @param WP_Post $post The adjacent post. * @param string $adjacent Whether the post is previous or next. */ return apply_filters( "{$adjacent}_post_link", $output, $format, $link, $post, $adjacent ); }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
3.7.0 | Introduced. |