【问题标题】:Url rewrite in Wordpress在 Wordpress 中重写 URL
【发布时间】:2016-03-04 17:31:55
【问题描述】:

我基本上有这个网址: http://localhost:8888/wordpress/products/?cat=cards

应该是:http://localhost:8888/wordpress/products/cards

我对 Wordpress 和 url 重写相当陌生,但我找到了一些示例,显然你可以使用类似这样的 php 函数来做到这一点,现在我的问题是考虑到 Wordpress 已经重写了 url,这将是什么重写规则使用 /products/ 让我对重写规则感到困惑,有什么提示吗?

function add_my_var($public_query_vars) {
    $public_query_vars[] = 'cat';
    return $public_query_vars;
}

add_filter('query_vars', 'cat');

function do_rewrite() {
    add_rewrite_rule('products/([^/]+)/?$', 'index.php?products=products&cat=$matches[1]','top');
}

add_action('init', 'do_rewrite');

【问题讨论】:

    标签: php wordpress url url-rewriting rewrite


    【解决方案1】:

    如果你看看https://codex.wordpress.org/Rewrite_API/add_rewrite_rule

    它实际上并没有进行重定向。您可以将 url 解析为 wordpress 查询变量。所以当你去http://localhost:8888/wordpress/products/cards时它会和你去http://localhost:8888/wordpress/products/?cat=cards一样

    所以你想要什么。如果你去http://localhost:8888/wordpress/products/cards,你应该可以在wordpress $wp->query_vars 中访问猫

    听起来您对 http://localhost:8888/wordpress/products/?cat=cards 重定向到 http://localhost:8888/wordpress/products/cards 的期望是不同的。

    【讨论】:

    • 啊,我明白了,所以我猜它又回到了 .htaccses
    猜你喜欢
    • 2019-05-13
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    • 2012-10-10
    • 1970-01-01
    相关资源
    最近更新 更多