0

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

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

我当前的架构是这样的:我有一个带有 slug 'categories' 的页面,在那个页面中我有这个短代码:[webshop_categories]

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

现在出于搜索引擎优化的目的,我想要有分层网址。

整个过程都有效,因为如果我创建 /categories/123,wordpress 将转到该页面,找到简码并执行它。

但是,如果我会去 /categories/myCat/123/mySubCat/345,它会尝试找到一个带有 slug mycat 的页面,产生 404。

我可以阻止 wordpress 这样做吗?

希望我解释得清楚一些。

4

1 回答 1

1

您需要您的插件来确定是否要处理 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;
}
于 2013-09-18T14:16:53.903 回答