我的Wordpress插件应该创建分层URL,如何


My Wordpress plugin should create hierarchical URLs, how?

>我写了一个网店插件,它通过REST连接到一个充满产品的自定义后端,并在页面中呈现产品。后端 REST API 支持分层类别,然后在叶子中,有产品。所以用户可以点击通过 Cat1 -> subcat -> sub sub cat -> product X

这行得通。但是我希望网址是/类别/cat1/subcat/subsubcat/,我无法正常工作。

目前的架构是这样的:我有一个带有 slug "categories"的页面,在该页面中我有这个简码:[webshop_categories]

我的插件在 PHP 中对后端进行 curl 调用,并渲染产品。它通过观察URL(非分层,但说:/categories/123/)获取类别ID,然后获取该类别ID的子类别和产品来实现。

现在出于SEO目的,我希望有分层网址。

这整个事情是有效的,因为如果我创建/categories/123,wordpress 将转到该页面,找到简码并执行它。

但是,如果我转到/categories/myCat/

123/mySubCat/345,它将尝试找到一个带有 slug mycat 的页面,产生 404。

我可以阻止WordPress这样做吗?

希望我解释得有点清楚。

你需要你的插件来处理确定是否要处理 URL。我用我写的专有插件来做到这一点。

如果您的插件要处理 URL,您将需要查看:

add_action('template_redirect', array(&$this,'template_redirect'));
public function template_redirect(){
    global $wp_query;
    if($wp_query->is_404){
        $wp_query->is_404=false;
        $wp_query->is_archive=true;
    }
    header($_SERVER['SERVER_PROTOCOL'].' 200 OK');
    //function to render your output here
    exit;
}