后端/管理员的自定义重写规则?

时间:2014-01-14 作者:waffl

我想创建一个自定义重写规则,该规则将采用URL:

http://domain/submit-project/add

但显示

http://domain/wp/wp-admin/post-new.php?post_type=project

有没有办法做到这一点?我试图在我的主题中添加重写规则functions.php

add_action( \'init\', \'add_custom_rules\' );

function add_custom_rules() {
  add_rewrite_rule(
    "^submit-project/add",  
        "/wp/wp-admin/post-new.php?post_type=project",  
        "top");
}
我尝试刷新规则,但这似乎总是进入某种循环,总是返回到“登录”页面。

Edit

<我应该补充一点,我确实有一个带有slug的页面submit-project 因此URL:http://domain.com/submit-project 以防万一

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

一般来说,这是可能的,但您需要定义ADMIN_COOKIE_PATH 在您的wp-config.php 到值/ 这可能会导致安全问题。

首先,在中定义此重写规则。htaccess在wordpress重写规则之前:

# Make sure, there is a trailing slash
RewriteRule ^submit-project/add$ submit-project/add/ [R=301,L]
# mask the urls
RewriteRule ^submit-project/add/$ /wp/wp-admin/post-new.php [L,QSA]
RewriteRule ^submit-project/add/post.php?$ /wp/wp-admin/post.php [L,QSA]
# this is the wordpress rule:
RewriteRule . /index.php [L]
现在需要在wp-config.php

define( \'ADMIN_COOKIE_PATH\', \'/\' );
我建议不要在生产性站点上使用此选项。考虑在前端提供一个特殊的输入公式,使用短代码或比所示示例更具侵略性的东西。

结束