Php 重定向Wordpress附件URL
有人能为我重定向以下永久链接URL吗 WordPress的URL是: 我想将其重定向到新的结构I do it,以下代码在旧URL中不适用于我:-Php 重定向Wordpress附件URL,php,wordpress,redirect,Php,Wordpress,Redirect,有人能为我重定向以下永久链接URL吗 WordPress的URL是: 我想将其重定向到新的结构I do it,以下代码在旧URL中不适用于我:- /* add new rewrite rule */ function attachment_rewrite( $wp_rewrite ) { $rule = array( 'media/(.+)' => 'index.php?attachment=' . $wp_rewrite->preg_index(1)
/* add new rewrite rule */
function attachment_rewrite( $wp_rewrite ) {
$rule = array(
'media/(.+)' => 'index.php?attachment=' . $wp_rewrite->preg_index(1)
);
$wp_rewrite->rules = $rule + $wp_rewrite->rules;
}
add_filter( 'generate_rewrite_rules', 'attachment_rewrite' );
/* redirect standard wordpress attachments urls to new format */
function redirect_old_attachment() {
global $wp;
if( !preg_match( '/^media\/(.*)/', $wp->request ) && isset( $wp->query_vars['attachment'] ) ) {
wp_redirect( site_url( '/media/' . $wp->query_vars['attachment'] ) , 301 );
exit();
}
}
add_filter( 'template_redirect', 'redirect_old_attachment' );
/**/
function wpd_attachment_link( $link, $post_id ){
$post = get_post( $post_id );
return home_url( '/media/' . $post->post_name );
}
add_filter( 'attachment_link', 'wpd_attachment_link', 20, 2 );
所以我们需要在打开
http://example.com/?attachment_id=411
,将其重定向到http://example.com/media/post-title
将现有代码更新为以下内容:
//Modify attachment page link
add_filter( 'attachment_link', 'wp_attachment_link', 20, 2 );
function wp_attachment_link( $link, $attachment_id ){
$attachment = get_post( $attachment_id );
$attachment_title = $attachment->post_title ;
$attachment_title = str_replace( ' ' , '-' , $attachment_title );
$site_url = get_site_url( $attachment_id );
$link = $site_url . '/media/' .$attachment_title;
return $link;
}
// Rewrite attachment page link
add_action( 'init', function() {
add_rewrite_rule( 'media/([A-Za-z0-9-]+)?$', 'index.php?attachment_id=$matches[2]', 'top' );
} );
我希望这能有所帮助。用更多的细节来阐述你的问题,比如输入和输出结构。我需要打开
http://example.com/?attachment_id=411
,将其重定向到http://example.com/media/post-title