当前位置: 首页 > 知识库问答 >
问题:

我的Wordpress插件应该创建分层网址,如何?

阮健
2023-03-14

我已经编写了一个webshop插件,它通过REST连接到一个定制的后端,并在一个页面中呈现产品。后端RESTAPI支持分层分类,然后在叶子中有产品。因此,用户可以通过Cat1单击-

这很有效。但是我希望URL是/categories/cat1/subcat/subsubcat/,我无法工作。

我当前的架构是这样的:我有一个带有slug“categories”的页面,在该页面中我有一个短代码:[webshop\u categories]

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

现在为了搜索引擎优化的目的,我想有层次的网址。

这一切都是可行的,因为如果我创建/categories/123,wordpress将转到该页面,找到短代码并执行它。

然而,如果我去了 /categories/myCat/123/mySubCat/345,它会试图找到一个页面,其中有一个404。

我可以阻止wordpress这样做吗?

希望我能解释清楚一点。

共有1个答案

叶鸿
2023-03-14

您需要您的插件来确定是否要处理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;
}
 类似资料:
  • 您知道为什么在控制器层中创建吗?如果在服务层创建会发生什么?

  • 我有两个不同的网站。一个是非wordpress的网站,另一个是基于wordpress框架制作的博客。如果您的登录信息有效,是否可以设置一个非wordpress站点的登录表单,将您重定向到wordpress博客仪表板? 我尝试在我的网站中创建一个表单,并将操作设置为我的博客wp-login.php,但它没有将我重定向到仪表板,而是显示主wordpress登录窗口,但我已经登录了。

  • 本文向大家介绍原创jQuery弹出层插件分享,包括了原创jQuery弹出层插件分享的使用技巧和注意事项,需要的朋友参考一下 依赖jquery,兼容IE6\7\8 火狐 chrom 等主流浏览器(绝对原创), 不过请求大神帮我提升点效率。 以上所述就是本文的全部内容了,希望大家能够喜欢。

  • https://github.com/golang/protobuf protoc gen go是protoc中的一个插件,它为输入proto定义生成go绑定。 protoc gen go也有一个插件框架,grpc是它的插件https://github.com/golang/protobuf/tree/master/protoc-gen-go/grpc helloworld.protogo_out

  • 该插件在toolsmenu中或菜单中任何位置只包含一个操作,但我总是得到空java.lang.NullPointerException即使它是空操作android studio 2.3.3空project intellij idea 2017.1.5我尝试了Community和ultimate两个版本

  • 问题内容: 我有一个可以为其创建一个(或多个)实例的实例。我正在使用Servlet环境,并且已经将一个EntityManagerFactory连接到Servlet(通过Servlet上下文),该Servlet在Servlet的生命周期中(因此,对于所有用户)都共享。 我可以执行以下操作之一: 在我的Servlet的生存期内创建一个EntityManager(例如,在所有用户之间共享) 为每个用户创