Rewrite specific action url

时间:2017-09-11 作者:Archangel17

是否可以重写索引的特定操作url?

示例操作url:http://example.com/?action=testhttp://example.com/index.php?action=test

如果url的操作为“测试”,则会将其重新写入:http://example.com/test/

如有任何帮助、示例代码或解释,将不胜感激。

1 个回复
SO网友:Jacob Peattie

您的问题不清楚查询字符串的重要性action 以及价值test, 但如果你只需要/test URL,并能够判断/test URL以便您可以处理soemthing,那么最简单的方法可能是使用add_rewrite_endpoint(). 看起来是这样的:

function wpse_279663_rewrite_test() {
    add_rewrite_endpoint( \'test\', EP_ROOT ); 
}
add_action( \'init\', \'wpse_279663_rewrite_test\' );
现在http://example.com/test 将重写为http://example.com/?test=. 然后您可以使用get_query_var() 看看是否?test 已设置:

if ( get_query_var( \'test\', false ) !== false ) {}
第二个论点说如果\'test\' 未设置,则返回false (默认值是一个空字符串,在这种情况下它是无用的),这样我们就可以看到是否使用简单的真/假设置了它。

您可以使用的一种方法是init hook,处理一个表单或其他东西,如下所示:

function wpse_279663_test() {
    if ( get_query_var( \'test\', false ) !== false ) {
        // Do something.
    }
}
add_action( \'init\', \'wpse_279663_test\' );

结束

相关推荐

如果我使用Allow IP通过.htaccess拒绝登录页面,如何登录

我正在运行wordpress网站,AIO WP Security&;防火墙插件,通知我是否有错误的登录尝试。/wp admin包含。htaccess设置位置:order deny,allow deny from all allow from 123.123.123.123 // my IP 我仍然收到来自AIO插件的电子邮件,有人试图用不同IP的奇怪用户名登录。除了/wp admin之外,还有其他方法可以获取登录页面并尝试进行身份验证吗??