OctoberCMS:为什么博客插件 "post.url" 中缺少 slug 值

OctoberCMS: Why is the slug value missing in "post.url" of the blog plugin

我正在使用博客插件的 [blogPosts] 组件。我有一个 for 循环来显示所有博客 posts。一切正常,但 {{ post.url }} 的值缺少 slug 值。这就是我使用组件的方式:

url = "/blog/:page?"
layout = "default"

[blogPosts]
pageNumber = "{{ :page }}"
postsPerPage = 10
noPostsMessage = "No posts found"
sortOrder = "published_at desc"
categoryPage = 404
postPage = "post"
==
{% set posts = blogPosts.posts %}
{% for post in posts %}
<h1>{{ post.title }}</h1>
<p>{{ post.summary|raw }}</p>
<a href="{{ post.url }}">Read more</a>
{% endfor %}

在上面的例子中,所有 post 个链接都指向 blog/post。我希望每个 post 的 slug 都在其 url 中,但它丢失了。为什么?

有时可能是 blog page URL 的问题。

如果您使用 [blogPosts] 并且在标记中,您需要使用 {{ post.url }} 生成 blog page 的 link 您需要制作适当的 url blog page

title = "Blog Post Page"
url = "/blog/post/:slug"
layout = "default"
is_hidden = 0
==
<?PHP
  // ... other code

这里重要的是url = "/blog/post/:slug",主要的重要的是:slug参数

URL has to have :slug parameter to replace with actual post slug.

如果您还需要在 URL 中添加 post 类别 slug,那么您还需要在 URL 中使用 :category 参数,例如:url = "/blog/post/:category/:slug"

these :slug and :category is hardcoded in making a link of the post so you need to use exactly them not other names. check below screenshot of post model from rainlab.post plugin.

如有疑问请评论。