我们的自定义帖子类型为user_images 每个帖子都附有一张图片,图片名称是3位数,后面是分机。
当url
http://mysite.com/wp_username/3digitnumber
 我们想在主题中使用自定义模板来显示图像
棘手的部分是,对于访问者,url应该保持不变,但在内部应该使用wp_username 和3digitnumber 作为查询变量。wp_username 是有效的WordPress用户nicename。
找不到线索,所以对url格式做了一个小小的妥协
http://mysite.com/image/wp_username/3digitnumber
 尝试使用自定义模板创建页面,并使用以下htaccess规则
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} !^iuser=.*
RewriteCond %{REQUEST_URI} !^/wp-content/(.*)$ [NC]
RewriteRule ^image/(.*)/([0-9]+)$ /index.php?post_type=page&p=564&iuser=$1&iname=$2 [L]
 其中564是带有自定义模板的页面id。
但是,url更改为
http://mysite.com/custompage/?iuser=myuser&iname=001
 也尝试过
function add_rewrite_rules($rules) {
    $newrules[\'image/([^/]+)/?([0-9]{1,})/?$\'] = \'index.php?post_type=page&p=564&iuser=$matches[1]&iname=$matches[2]\';
    $rules = $newrules + $rules;
    return $rules;
}
add_filter(\'rewrite_rules_array\', \'add_rewrite_rules\');
 (已调用
$wp_rewrite->flush_rules(); 添加后一次。)
但url再次更改为
http://mysite.com/custompage/?iuser=myuser&iname=001
Answer:@Milo提供的解决方案非常有效。由于浏览器缓存,url已更改为具有查询字符串的url
 
                    最合适的回答,由SO网友:Milo 整理而成
                    正如我在你的另一个问题中所提到的,你不想触摸。htaccess文件,您需要进行内部重写。
因此,给定URL:
http://mysite.com/image/wp_username/3digitnumber
 我们需要添加以下规则来处理它:
// set up the rewrite rule
function wpa73374_setup_rewrites(){
    add_rewrite_rule(
        \'image/([^/]+)/([0-9]+)/?$\',
        \'index.php?pagename=custompage&iuser=$matches[1]&iname=$matches[2]\',
        \'top\'
    );
}
add_action( \'init\', \'wpa73374_setup_rewrites\' );
 如上所述,我们指向一个带有slug的页面
custompage. 您可以将其更改为用于处理这些自定义URL的任何页面段塞。如果该页是另一页的子页,则必须添加
pagename=parentpage/childpage. 添加重写规则后,请确保访问permalinks设置页面刷新重写,以便新规则开始工作。
但是,仅上述内容是行不通的,因为WordPress不知道iuser 和iname 是,因此我们需要将它们添加到已识别的查询变量中:
// add your custom query vars
function wpa73374_query_vars( $query_vars ){
    $query_vars[] = \'iuser\';
    $query_vars[] = \'iname\';
    return $query_vars;
}
add_filter( \'query_vars\', \'wpa73374_query_vars\' );
 最后,在模板中,使用
get_query_var( \'iuser\' ) 和
get_query_var( \'iname\' ) 获取自定义查询变量值。