Content management system 在post页面中添加类别slug

Content management system 在post页面中添加类别slug,content-management-system,blogs,octobercms,slug,Content Management System,Blogs,Octobercms,Slug,我是10月cms的初学者,在我的个人博客中使用rainlab博客插件。 我想在博客帖子页面的url中显示类别slug,我该如何实现 i、 例如,example.com/{category\u slug}/{blog\u post\u slug}应该是example.com/:category?/:slug? 除非您将组件全部跳过,否则没有办法解决此问题。帖子的博客组件只是在寻找slug::slug。在我看来,你真的不必担心人们会改变这一类别。您的帖子列表页面的链接应该是urlexample.co

我是10月cms的初学者,在我的个人博客中使用rainlab博客插件。 我想在博客帖子页面的url中显示类别slug,我该如何实现


i、 例如,example.com/{category\u slug}/{blog\u post\u slug}

应该是
example.com/:category?/:slug?

除非您将组件全部跳过,否则没有办法解决此问题。帖子的博客组件只是在寻找slug:
:slug
。在我看来,你真的不必担心人们会改变这一类别。您的帖子列表页面的链接应该是url
example.com/category/post
。用户为什么要更改类别

如果你真的在乎,这里有一个解决的办法不要使用博客文章组件。制作自己的插件或使用CMS页面。代码将略有不同,在本例中,我将使用CMS页面代码,因为它是“临时”和更快

use Rainlab\Blog\Models\Post;
function onStart() {
    $category = $this->param('category');
    $slug = $this->param('slug');
    $posts = Post::whereHas('categories', function ($query) use ($category) {
            $query->where('slug', $category);
        })->get();
    $this['post'] = $posts->where('slug', $slug)->first();
}

这是可行的,但即使我在分类部分写了什么,它也会加载博客页面。example.com/abc/blog-slug example.com/blog-category/blog-slug都返回同一个blog页面,我认为这不正确。这应该让我开始。非常感谢。