需要有关自定义重写规则的帮助

时间:2015-06-29 作者:Diego de Oliveira

我有一个叫CPT的presskit, 我需要添加一个名为welcome_box. 我现在有这个代码:

function my_new_url_querystring(){
    add_rewrite_tag( \'%welcome_box%\',\'([^&]+)\' );

    add_rewrite_rule(
        \'presskit/(.?.+?)/box/(.+)/?$\',
        \'index.php?post_type=presskit&pagename=$matches[1]&welcome_box=$matches[2]\',
        \'top\'
    );

}
add_action( \'init\', \'my_new_url_querystring\' );
当我试图打开mysite.com/presskit/presskit-name/box/john-doe, 它回到mysite.com/presskit/presskit-name/.

如果我打开mysite.com/presskit/presskit-name/?welcome_box=john-doe, 它起作用了,我可以得到查询变量。

我做错了什么?我不擅长正则表达式,所以可能存在错误。

欢迎提供任何提示!

更新

多亏了@Milo的答案,我才可以让它工作。以下是工作代码:

function my_new_url_querystring(){
    add_rewrite_tag( \'%welcome_box%\',\'([^&]+)\' );

    add_rewrite_rule(
        \'presskit/([^/]+)/message-to/(.*)?/?$\',
        \'index.php?presskit=$matches[1]&welcome_box=$matches[2]\',
        \'top\'
    );

}
add_action( \'init\', \'my_new_url_querystring\' );

1 个回复
最合适的回答,由SO网友:Milo 整理而成

pagename 如果您试图传递presskit 立柱类型,删除post_typepagename 就这么定了presskit=$matches[1] 相反

结束

相关推荐

使用$qpdb->Query()更新总是返回0行受影响

使用运行更新时,我遇到了一个奇怪的情况$wpdb->query().鉴于users 表,带列user_id (主键)和status, 并且用户3已存在且状态为0,我运行以下查询: update users set status = 8 where user_id = 3 在我的计算机上,使用$wpdb->query, 我得到的结果是1:1行受影响。在另一台机器上,我用PHP代码运行查询,总是得到0行:在运行查询之前,我检查了状态,结果是0,如果我用另一个工具(例