Add a $taxonomy argument to each of the adjacent post functions.
Each took an array of category (IDs) when to search. Those can now be term IDs and each function now has $taxonomy = 'category' as an optional argument. Functions affected: get_previous_post(), get_next_post(), get_adjacent_post(), get_adjacent_post_rel_link(), adjacent_posts_rel_link(), next_post_rel_link(), prev_post_rel_link(), get_boundary_post(), get_previous_post_link(), previous_post_link(), get_next_post_link(), next_post_link(), get_adjacent_post_link(), adjacent_post_link(). props ethitter. finally fixes #17807. Built from https://develop.svn.wordpress.org/trunk@25959 git-svn-id: http://core.svn.wordpress.org/trunk@25918 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
a8ef13972c
commit
26d4fdf58d
|
@ -1091,12 +1091,13 @@ function get_edit_user_link( $user_id = null ) {
|
|||
*
|
||||
* @since 1.5.0
|
||||
*
|
||||
* @param bool $in_same_cat Optional. Whether post should be in a same category.
|
||||
* @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs.
|
||||
* @param bool $in_same_term Optional. Whether post should be in a same taxonomy term.
|
||||
* @param array|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs.
|
||||
* @param string $taxonomy Optional. Taxonomy, if $in_same_term is true. Default 'category'.
|
||||
* @return mixed Post object if successful. Null if global $post is not set. Empty string if no corresponding post exists.
|
||||
*/
|
||||
function get_previous_post($in_same_cat = false, $excluded_categories = '') {
|
||||
return get_adjacent_post($in_same_cat, $excluded_categories);
|
||||
function get_previous_post( $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' ) {
|
||||
return get_adjacent_post( $in_same_term, $excluded_terms, true, $taxonomy );
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1104,12 +1105,13 @@ function get_previous_post($in_same_cat = false, $excluded_categories = '') {
|
|||
*
|
||||
* @since 1.5.0
|
||||
*
|
||||
* @param bool $in_same_cat Optional. Whether post should be in a same category.
|
||||
* @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs.
|
||||
* @param bool $in_same_term Optional. Whether post should be in a same taxonomy term.
|
||||
* @param array|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs.
|
||||
* @param string $taxonomy Optional. Taxonomy, if $in_same_term is true. Default 'category'.
|
||||
* @return mixed Post object if successful. Null if global $post is not set. Empty string if no corresponding post exists.
|
||||
*/
|
||||
function get_next_post($in_same_cat = false, $excluded_categories = '') {
|
||||
return get_adjacent_post($in_same_cat, $excluded_categories, false);
|
||||
function get_next_post( $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' ) {
|
||||
return get_adjacent_post( $in_same_term, $excluded_terms, false, $taxonomy );
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1119,54 +1121,55 @@ function get_next_post($in_same_cat = false, $excluded_categories = '') {
|
|||
*
|
||||
* @since 2.5.0
|
||||
*
|
||||
* @param bool $in_same_cat Optional. Whether post should be in a same category.
|
||||
* @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs.
|
||||
* @param bool $in_same_term Optional. Whether post should be in a same taxonomy term.
|
||||
* @param array|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs.
|
||||
* @param bool $previous Optional. Whether to retrieve previous post.
|
||||
* @param string $taxonomy Optional. Taxonomy, if $in_same_term is true. Default 'category'.
|
||||
* @return mixed Post object if successful. Null if global $post is not set. Empty string if no corresponding post exists.
|
||||
*/
|
||||
function get_adjacent_post( $in_same_cat = false, $excluded_categories = '', $previous = true ) {
|
||||
function get_adjacent_post( $in_same_term = false, $excluded_terms = '', $previous = true, $taxonomy = 'category' ) {
|
||||
global $wpdb;
|
||||
|
||||
if ( ! $post = get_post() )
|
||||
if ( ( ! $post = get_post() ) || ! taxonomy_exists( $taxonomy ) )
|
||||
return null;
|
||||
|
||||
$current_post_date = $post->post_date;
|
||||
|
||||
$join = '';
|
||||
$posts_in_ex_cats_sql = '';
|
||||
if ( $in_same_cat || ! empty( $excluded_categories ) ) {
|
||||
$posts_in_ex_terms_sql = '';
|
||||
if ( $in_same_term || ! empty( $excluded_terms ) ) {
|
||||
$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";
|
||||
|
||||
if ( $in_same_cat ) {
|
||||
if ( ! is_object_in_taxonomy( $post->post_type, 'category' ) )
|
||||
if ( $in_same_term ) {
|
||||
if ( ! is_object_in_taxonomy( $post->post_type, $taxonomy ) )
|
||||
return '';
|
||||
$cat_array = wp_get_object_terms($post->ID, 'category', array('fields' => 'ids'));
|
||||
if ( ! $cat_array || is_wp_error( $cat_array ) )
|
||||
$term_array = wp_get_object_terms( $post->ID, $taxonomy, array( 'fields' => 'ids' ) );
|
||||
if ( ! $term_array || is_wp_error( $term_array ) )
|
||||
return '';
|
||||
$join .= " AND tt.taxonomy = 'category' AND tt.term_id IN (" . implode(',', $cat_array) . ")";
|
||||
$join .= $wpdb->prepare( " AND tt.taxonomy = %s AND tt.term_id IN (" . implode( ',', array_map( 'intval', $term_array ) ) . ")", $taxonomy );
|
||||
}
|
||||
|
||||
$posts_in_ex_cats_sql = "AND tt.taxonomy = 'category'";
|
||||
if ( ! empty( $excluded_categories ) ) {
|
||||
if ( ! is_array( $excluded_categories ) ) {
|
||||
// back-compat, $excluded_categories used to be IDs separated by " and "
|
||||
if ( strpos( $excluded_categories, ' and ' ) !== false ) {
|
||||
_deprecated_argument( __FUNCTION__, '3.3', sprintf( __( 'Use commas instead of %s to separate excluded categories.' ), "'and'" ) );
|
||||
$excluded_categories = explode( ' and ', $excluded_categories );
|
||||
$posts_in_ex_terms_sql = $wpdb->prepare( "AND tt.taxonomy = %s", $taxonomy );
|
||||
if ( ! empty( $excluded_terms ) ) {
|
||||
if ( ! is_array( $excluded_terms ) ) {
|
||||
// back-compat, $excluded_terms used to be $excluded_terms with IDs separated by " and "
|
||||
if ( false !== strpos( $excluded_terms, ' and ' ) ) {
|
||||
_deprecated_argument( __FUNCTION__, '3.3', sprintf( __( 'Use commas instead of %s to separate excluded terms.' ), "'and'" ) );
|
||||
$excluded_terms = explode( ' and ', $excluded_terms );
|
||||
} else {
|
||||
$excluded_categories = explode( ',', $excluded_categories );
|
||||
$excluded_terms = explode( ',', $excluded_terms );
|
||||
}
|
||||
}
|
||||
|
||||
$excluded_categories = array_map( 'intval', $excluded_categories );
|
||||
$excluded_terms = array_map( 'intval', $excluded_terms );
|
||||
|
||||
if ( ! empty( $cat_array ) ) {
|
||||
$excluded_categories = array_diff($excluded_categories, $cat_array);
|
||||
$posts_in_ex_cats_sql = '';
|
||||
if ( ! empty( $term_array ) ) {
|
||||
$excluded_terms = array_diff( $excluded_terms, $term_array );
|
||||
$posts_in_ex_terms_sql = '';
|
||||
}
|
||||
|
||||
if ( !empty($excluded_categories) ) {
|
||||
$posts_in_ex_cats_sql = " AND tt.taxonomy = 'category' AND tt.term_id NOT IN (" . implode($excluded_categories, ',') . ')';
|
||||
if ( ! empty( $excluded_terms ) ) {
|
||||
$posts_in_ex_terms_sql = $wpdb->prepare( " AND tt.taxonomy = %s AND tt.term_id NOT IN (" . implode( $excluded_terms, ',' ) . ')', $taxonomy );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1175,13 +1178,13 @@ function get_adjacent_post( $in_same_cat = false, $excluded_categories = '', $pr
|
|||
$op = $previous ? '<' : '>';
|
||||
$order = $previous ? 'DESC' : 'ASC';
|
||||
|
||||
$join = apply_filters( "get_{$adjacent}_post_join", $join, $in_same_cat, $excluded_categories );
|
||||
$where = apply_filters( "get_{$adjacent}_post_where", $wpdb->prepare("WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = 'publish' $posts_in_ex_cats_sql", $current_post_date, $post->post_type), $in_same_cat, $excluded_categories );
|
||||
$join = apply_filters( "get_{$adjacent}_post_join", $join, $in_same_term, $excluded_terms );
|
||||
$where = apply_filters( "get_{$adjacent}_post_where", $wpdb->prepare( "WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = 'publish' $posts_in_ex_terms_sql", $current_post_date, $post->post_type), $in_same_term, $excluded_terms );
|
||||
$sort = apply_filters( "get_{$adjacent}_post_sort", "ORDER BY p.post_date $order LIMIT 1" );
|
||||
|
||||
$query = "SELECT p.ID FROM $wpdb->posts AS p $join $where $sort";
|
||||
$query_key = 'adjacent_post_' . md5($query);
|
||||
$result = wp_cache_get($query_key, 'counts');
|
||||
$query_key = 'adjacent_post_' . md5( $query );
|
||||
$result = wp_cache_get( $query_key, 'counts' );
|
||||
if ( false !== $result ) {
|
||||
if ( $result )
|
||||
$result = get_post( $result );
|
||||
|
@ -1192,7 +1195,7 @@ function get_adjacent_post( $in_same_cat = false, $excluded_categories = '', $pr
|
|||
if ( null === $result )
|
||||
$result = '';
|
||||
|
||||
wp_cache_set($query_key, $result, 'counts');
|
||||
wp_cache_set( $query_key, $result, 'counts' );
|
||||
|
||||
if ( $result )
|
||||
$result = get_post( $result );
|
||||
|
@ -1208,33 +1211,34 @@ function get_adjacent_post( $in_same_cat = false, $excluded_categories = '', $pr
|
|||
* @since 2.8.0
|
||||
*
|
||||
* @param string $title Optional. Link title format.
|
||||
* @param bool $in_same_cat Optional. Whether link should be in a same category.
|
||||
* @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs.
|
||||
* @param bool $previous Optional, default is true. Whether to display link to previous or next post.
|
||||
* @param bool $in_same_term Optional. Whether link should be in a same taxonomy term.
|
||||
* @param array|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs.
|
||||
* @param bool $previous Optional. Whether to display link to previous or next post. Default true.
|
||||
* @param string $taxonomy Optional. Taxonomy, if $in_same_term is true. Default 'category'.
|
||||
* @return string
|
||||
*/
|
||||
function get_adjacent_post_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '', $previous = true) {
|
||||
function get_adjacent_post_rel_link( $title = '%title', $in_same_term = false, $excluded_terms = '', $previous = true, $taxonomy = 'category' ) {
|
||||
if ( $previous && is_attachment() && $post = get_post() )
|
||||
$post = get_post( $post->post_parent );
|
||||
else
|
||||
$post = get_adjacent_post( $in_same_cat, $excluded_categories, $previous );
|
||||
$post = get_adjacent_post( $in_same_term, $excluded_terms, $previous, $taxonomy );
|
||||
|
||||
if ( empty($post) )
|
||||
if ( empty( $post ) )
|
||||
return;
|
||||
|
||||
$post_title = the_title_attribute( array( 'echo' => false, 'post' => $post ) );
|
||||
|
||||
if ( empty( $post_title ) )
|
||||
$post_title = $previous ? __('Previous Post') : __('Next Post');
|
||||
$post_title = $previous ? __( 'Previous Post' ) : __( 'Next Post' );
|
||||
|
||||
$date = mysql2date(get_option('date_format'), $post->post_date);
|
||||
$date = mysql2date( get_option( 'date_format' ), $post->post_date );
|
||||
|
||||
$title = str_replace('%title', $post_title, $title);
|
||||
$title = str_replace('%date', $date, $title);
|
||||
$title = str_replace( '%title', $post_title, $title );
|
||||
$title = str_replace( '%date', $date, $title );
|
||||
|
||||
$link = $previous ? "<link rel='prev' title='" : "<link rel='next' title='";
|
||||
$link .= esc_attr( $title );
|
||||
$link .= "' href='" . get_permalink($post) . "' />\n";
|
||||
$link .= "' href='" . get_permalink( $post ) . "' />\n";
|
||||
|
||||
$adjacent = $previous ? 'previous' : 'next';
|
||||
return apply_filters( "{$adjacent}_post_rel_link", $link );
|
||||
|
@ -1246,12 +1250,13 @@ function get_adjacent_post_rel_link($title = '%title', $in_same_cat = false, $ex
|
|||
* @since 2.8.0
|
||||
*
|
||||
* @param string $title Optional. Link title format.
|
||||
* @param bool $in_same_cat Optional. Whether link should be in a same category.
|
||||
* @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs.
|
||||
* @param bool $in_same_term Optional. Whether link should be in a same taxonomy term.
|
||||
* @param array|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs.
|
||||
* @param string $taxonomy Optional. Taxonomy, if $in_same_term is true. Default 'category'.
|
||||
*/
|
||||
function adjacent_posts_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '') {
|
||||
echo get_adjacent_post_rel_link($title, $in_same_cat, $excluded_categories = '', true);
|
||||
echo get_adjacent_post_rel_link($title, $in_same_cat, $excluded_categories = '', false);
|
||||
function adjacent_posts_rel_link( $title = '%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' ) {
|
||||
echo get_adjacent_post_rel_link( $title, $in_same_term, $excluded_terms = '', true, $taxonomy );
|
||||
echo get_adjacent_post_rel_link( $title, $in_same_term, $excluded_terms = '', false, $taxonomy );
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1273,11 +1278,12 @@ function adjacent_posts_rel_link_wp_head() {
|
|||
* @since 2.8.0
|
||||
*
|
||||
* @param string $title Optional. Link title format.
|
||||
* @param bool $in_same_cat Optional. Whether link should be in a same category.
|
||||
* @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs.
|
||||
* @param bool $in_same_term Optional. Whether link should be in a same taxonomy term.
|
||||
* @param array|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs.
|
||||
* @param string $taxonomy Optional. Taxonomy, if $in_same_term is true. Default 'category'.
|
||||
*/
|
||||
function next_post_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '') {
|
||||
echo get_adjacent_post_rel_link($title, $in_same_cat, $excluded_categories = '', false);
|
||||
function next_post_rel_link( $title = '%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' ) {
|
||||
echo get_adjacent_post_rel_link( $title, $in_same_term, $excluded_terms = '', false, $taxonomy );
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1286,55 +1292,70 @@ function next_post_rel_link($title = '%title', $in_same_cat = false, $excluded_c
|
|||
* @since 2.8.0
|
||||
*
|
||||
* @param string $title Optional. Link title format.
|
||||
* @param bool $in_same_cat Optional. Whether link should be in a same category.
|
||||
* @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs.
|
||||
* @param bool $in_same_term Optional. Whether link should be in a same taxonomy term.
|
||||
* @param array|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs. Default true.
|
||||
* @param string $taxonomy Optional. Taxonomy, if $in_same_term is true. Default 'category'.
|
||||
*/
|
||||
function prev_post_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '') {
|
||||
echo get_adjacent_post_rel_link($title, $in_same_cat, $excluded_categories = '', true);
|
||||
function prev_post_rel_link( $title = '%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' ) {
|
||||
echo get_adjacent_post_rel_link( $title, $in_same_term, $excluded_terms = '', true, $taxonomy );
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve boundary post.
|
||||
*
|
||||
* Boundary being either the first or last post by publish date within the constraints specified
|
||||
* by $in_same_cat or $excluded_categories.
|
||||
* by $in_same_term or $excluded_terms.
|
||||
*
|
||||
* @since 2.8.0
|
||||
*
|
||||
* @param bool $in_same_cat Optional. Whether returned post should be in a same category.
|
||||
* @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs.
|
||||
* @param bool $in_same_term Optional. Whether returned post should be in a same taxonomy term.
|
||||
* @param array|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs.
|
||||
* @param bool $start Optional. Whether to retrieve first or last post.
|
||||
* @param string $taxonomy Optional. Taxonomy, if $in_same_term is true. Default 'category'.
|
||||
* @return object
|
||||
*/
|
||||
function get_boundary_post( $in_same_cat = false, $excluded_categories = '', $start = true ) {
|
||||
function get_boundary_post( $in_same_term = false, $excluded_terms = '', $start = true, $taxonomy = 'category' ) {
|
||||
$post = get_post();
|
||||
if ( ! $post || ! is_single() || is_attachment() )
|
||||
if ( ! $post || ! is_single() || is_attachment() || ! taxonomy_exists( $taxonomy ) )
|
||||
return null;
|
||||
|
||||
$cat_array = array();
|
||||
if( ! is_array( $excluded_categories ) )
|
||||
$excluded_categories = explode( ',', $excluded_categories );
|
||||
$query_args = array(
|
||||
'posts_per_page' => 1,
|
||||
'order' => $start ? 'ASC' : 'DESC',
|
||||
'update_post_term_cache' => false,
|
||||
'update_post_meta_cache' => false
|
||||
);
|
||||
|
||||
if ( $in_same_cat || ! empty( $excluded_categories ) ) {
|
||||
if ( $in_same_cat )
|
||||
$cat_array = wp_get_object_terms( $post->ID, 'category', array( 'fields' => 'ids' ) );
|
||||
$term_array = array();
|
||||
|
||||
if ( ! empty( $excluded_categories ) ) {
|
||||
$excluded_categories = array_map( 'intval', $excluded_categories );
|
||||
$excluded_categories = array_diff( $excluded_categories, $cat_array );
|
||||
|
||||
$inverse_cats = array();
|
||||
foreach ( $excluded_categories as $excluded_category )
|
||||
$inverse_cats[] = $excluded_category * -1;
|
||||
$excluded_categories = $inverse_cats;
|
||||
}
|
||||
if ( ! is_array( $excluded_terms ) ) {
|
||||
if ( ! empty( $excluded_terms ) )
|
||||
$excluded_terms = explode( ',', $excluded_terms );
|
||||
else
|
||||
$excluded_terms = array();
|
||||
}
|
||||
|
||||
$categories = implode( ',', array_merge( $cat_array, $excluded_categories ) );
|
||||
if ( $in_same_term || ! empty( $excluded_terms ) ) {
|
||||
if ( $in_same_term )
|
||||
$term_array = wp_get_object_terms( $post->ID, $taxonomy, array( 'fields' => 'ids' ) );
|
||||
|
||||
$order = $start ? 'ASC' : 'DESC';
|
||||
if ( ! empty( $excluded_terms ) ) {
|
||||
$excluded_terms = array_map( 'intval', $excluded_terms );
|
||||
$excluded_terms = array_diff( $excluded_terms, $term_array );
|
||||
|
||||
return get_posts( array('numberposts' => 1, 'category' => $categories, 'order' => $order, 'update_post_term_cache' => false, 'update_post_meta_cache' => false) );
|
||||
$inverse_terms = array();
|
||||
foreach ( $excluded_terms as $excluded_term )
|
||||
$inverse_terms[] = $excluded_term * -1;
|
||||
$excluded_terms = $inverse_terms;
|
||||
}
|
||||
|
||||
$query_args[ 'tax_query' ] = array( array(
|
||||
'taxonomy' => $taxonomy,
|
||||
'terms' => array_merge( $term_array, $excluded_terms )
|
||||
) );
|
||||
}
|
||||
|
||||
return get_posts( $query_args );
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1344,12 +1365,13 @@ function get_boundary_post( $in_same_cat = false, $excluded_categories = '', $st
|
|||
*
|
||||
* @param string $format Optional. Link anchor format.
|
||||
* @param string $link Optional. Link permalink format.
|
||||
* @param bool $in_same_cat Optional. Whether link should be in same category.
|
||||
* @param string $excluded_categories Optional. Excluded categories IDs.
|
||||
* @param bool $in_same_term Optional. Whether link should be in a same taxonomy term.
|
||||
* @param array|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs.
|
||||
* @param string $taxonomy Optional. Taxonomy, if $in_same_term is true. Default 'category'.
|
||||
* @return string
|
||||
*/
|
||||
function get_previous_post_link( $format = '« %link', $link = '%title', $in_same_cat = false, $excluded_categories = '' ) {
|
||||
return get_adjacent_post_link( $format, $link, $in_same_cat, $excluded_categories, true );
|
||||
function get_previous_post_link( $format = '« %link', $link = '%title', $in_same_cat = false, $excluded_terms = '', $taxonomy = 'category' ) {
|
||||
return get_adjacent_post_link( $format, $link, $in_same_cat, $excluded_terms, true, $taxonomy );
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1360,11 +1382,12 @@ function get_previous_post_link( $format = '« %link', $link = '%title', $i
|
|||
*
|
||||
* @param string $format Optional. Link anchor format.
|
||||
* @param string $link Optional. Link permalink format.
|
||||
* @param bool $in_same_cat Optional. Whether link should be in a same category.
|
||||
* @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs.
|
||||
* @param bool $in_same_term Optional. Whether link should be in a same taxonomy term.
|
||||
* @param array|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs.
|
||||
* @param string $taxonomy Optional. Taxonomy, if $in_same_term is true. Default 'category'.
|
||||
*/
|
||||
function previous_post_link( $format = '« %link', $link = '%title', $in_same_cat = false, $excluded_categories = '' ) {
|
||||
echo get_previous_post_link( $format, $link, $in_same_cat, $excluded_categories );
|
||||
function previous_post_link( $format = '« %link', $link = '%title', $in_same_cat = false, $excluded_terms = '', $taxonomy = 'category' ) {
|
||||
echo get_previous_post_link( $format, $link, $in_same_cat, $excluded_terms, $taxonomy );
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1375,12 +1398,13 @@ function previous_post_link( $format = '« %link', $link = '%title', $in_sa
|
|||
*
|
||||
* @param string $format Optional. Link anchor format.
|
||||
* @param string $link Optional. Link permalink format.
|
||||
* @param bool $in_same_cat Optional. Whether link should be in same category.
|
||||
* @param string $excluded_categories Optional. Excluded categories IDs.
|
||||
* @param bool $in_same_term Optional. Whether link should be in a same taxonomy term.
|
||||
* @param array|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs.
|
||||
* @param string $taxonomy Optional. Taxonomy, if $in_same_term is true. Default 'category'.
|
||||
* @return string
|
||||
*/
|
||||
function get_next_post_link( $format = '« %link', $link = '%title', $in_same_cat = false, $excluded_categories = '' ) {
|
||||
return get_adjacent_post_link( $format, $link, $in_same_cat, $excluded_categories, false );
|
||||
function get_next_post_link( $format = '« %link', $link = '%title', $in_same_cat = false, $excluded_terms = '', $taxonomy = 'category' ) {
|
||||
return get_adjacent_post_link( $format, $link, $in_same_cat, $excluded_terms, false, $taxonomy );
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1390,11 +1414,12 @@ function get_next_post_link( $format = '« %link', $link = '%title', $in_sa
|
|||
*
|
||||
* @param string $format Optional. Link anchor format.
|
||||
* @param string $link Optional. Link permalink format.
|
||||
* @param bool $in_same_cat Optional. Whether link should be in a same category.
|
||||
* @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs.
|
||||
* @param bool $in_same_term Optional. Whether link should be in a same taxonomy term.
|
||||
* @param array|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs.
|
||||
* @param string $taxonomy Optional. Taxonomy, if $in_same_term is true. Default 'category'.
|
||||
*/
|
||||
function next_post_link( $format = '%link »', $link = '%title', $in_same_cat = false, $excluded_categories = '' ) {
|
||||
echo get_next_post_link( $format, $link, $in_same_cat, $excluded_categories );
|
||||
function next_post_link( $format = '%link »', $link = '%title', $in_same_cat = false, $excluded_terms = '', $taxonomy = 'category' ) {
|
||||
echo get_next_post_link( $format, $link, $in_same_cat, $excluded_terms, $taxonomy );
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1406,16 +1431,17 @@ function next_post_link( $format = '%link »', $link = '%title', $in_same_c
|
|||
*
|
||||
* @param string $format Link anchor format.
|
||||
* @param string $link Link permalink format.
|
||||
* @param bool $in_same_cat Optional. Whether link should be in a same category.
|
||||
* @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs.
|
||||
* @param bool $previous Optional, default is true. Whether to display link to previous or next post.
|
||||
* @param bool $in_same_term Optional. Whether link should be in a same taxonomy term.
|
||||
* @param array|string $excluded_terms Optional. Array or comma-separated list of excluded terms IDs.
|
||||
* @param bool $previous Optional. Whether to display link to previous or next post. Default true.
|
||||
* @param string $taxonomy Optional. Taxonomy, if $in_same_term is true. Default 'category'.
|
||||
* @return string
|
||||
*/
|
||||
function get_adjacent_post_link( $format, $link, $in_same_cat = false, $excluded_categories = '', $previous = true ) {
|
||||
function get_adjacent_post_link( $format, $link, $in_same_cat = 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_cat, $excluded_categories, $previous );
|
||||
$post = get_adjacent_post( $in_same_cat, $excluded_terms, $previous, $taxonomy );
|
||||
|
||||
if ( ! $post ) {
|
||||
$output = '';
|
||||
|
@ -1454,12 +1480,13 @@ function get_adjacent_post_link( $format, $link, $in_same_cat = false, $excluded
|
|||
* @param string $format Link anchor format.
|
||||
* @param string $link Link permalink format.
|
||||
* @param bool $in_same_cat Optional. Whether link should be in a same category.
|
||||
* @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs.
|
||||
* @param bool $previous Optional, default is true. Whether to display link to previous or next post.
|
||||
* @param array|string $excluded_terms Optional. Array or comma-separated list of excluded category IDs.
|
||||
* @param bool $previous Optional. Whether to display link to previous or next post. Default true.
|
||||
* @param string $taxonomy Optional. Taxonomy, if $in_same_term is true. Default 'category'.
|
||||
* @return string
|
||||
*/
|
||||
function adjacent_post_link( $format, $link, $in_same_cat = false, $excluded_categories = '', $previous = true ) {
|
||||
echo get_adjacent_post_link( $format, $link, $in_same_cat, $excluded_categories, $previous );
|
||||
function adjacent_post_link( $format, $link, $in_same_cat = false, $excluded_terms = '', $previous = true, $taxonomy = 'category' ) {
|
||||
echo get_adjacent_post_link( $format, $link, $in_same_cat, $excluded_terms, $previous, $taxonomy );
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue