Uppercase to Lowercase in URL

时间:2018-04-13 作者:Kay

我有一个创建modRewrite规则的函数

function markets_rewrite_url() {

add_rewrite_rule( \'(.+?)/symbol/(.+?)/exchange/(.*)\', \'index.php?&pagename=$matches[1]&symbol=$matches[2]&exchange=$matches[3]\', \'top\' );
add_rewrite_tag( \'%symbol%\', \'([\\-\\w+]*)\' );
add_rewrite_tag( \'%exchange%\', \'([\\-\\w+]*)\' );

}
这很好,但要重写规则,但如果它是大写的,我希望小写=$matches[2]和=$matches[3]

谢谢

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

这不是mod\\u重写规则,而是WordPress重写规则,它建议将变量从URL解析到wp\\u查询(大多数情况下)。

您可以在parse_query 过滤器挂钩。,像这样的。

add_filter( \'parse_query\', function( WP_Query $wp_query ) : WP_Query {
    foreach ( [ \'symbol\', \'exchange\' ] as $key ) {
        if ( \'\' !== $wp_query->get( $key ) ) {
            $wp_query->set( $key, strtolower( $wp_query->get( $key ) ) );
        }
    }
    return $wp_query;
});

结束

相关推荐