wp_old_slug_redirect
函数
wp_old_slug_redirect ( No parameters )
- 定义位置
-
-
wp-includes/query.php
, line 1054
-
wp-includes/query.php
- 引入
- 2.1.0
- 弃用
- –
Redirect old slugs to the correct permalink.
Attempts to find the current slug from the past slugs.
function wp_old_slug_redirect() {
if ( is_404() && '' !== get_query_var( 'name' ) ) {
// Guess the current post type based on the query vars.
if ( get_query_var( 'post_type' ) ) {
$post_type = get_query_var( 'post_type' );
} elseif ( get_query_var( 'attachment' ) ) {
$post_type = 'attachment';
} elseif ( get_query_var( 'pagename' ) ) {
$post_type = 'page';
} else {
$post_type = 'post';
}
if ( is_array( $post_type ) ) {
if ( count( $post_type ) > 1 ) {
return;
}
$post_type = reset( $post_type );
}
// Do not attempt redirect for hierarchical post types.
if ( is_post_type_hierarchical( $post_type ) ) {
return;
}
$id = _find_post_by_old_slug( $post_type );
if ( ! $id ) {
$id = _find_post_by_old_date( $post_type );
}
/**
* Filters the old slug redirect post ID.
*
* @since 4.9.3
*
* @param int $id The redirect post ID.
*/
$id = apply_filters( 'old_slug_redirect_post_id', $id );
if ( ! $id ) {
return;
}
$link = get_permalink( $id );
if ( get_query_var( 'paged' ) > 1 ) {
$link = user_trailingslashit( trailingslashit( $link ) . 'page/' . get_query_var( 'paged' ) );
} elseif ( is_embed() ) {
$link = user_trailingslashit( trailingslashit( $link ) . 'embed' );
}
/**
* Filters the old slug redirect URL.
*
* @since 4.4.0
*
* @param string $link The redirect URL.
*/
$link = apply_filters( 'old_slug_redirect_url', $link );
if ( ! $link ) {
return;
}
wp_redirect( $link, 301 ); // Permanent redirect.
exit;
}
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。