将博客帖子的lektor的URL结构更改为父目录

时间:2017-07-07 13:40:42

标签: lektor

问题: 我们正在将一个wordpress博客移植到lektor。该帖子的wordpress中的slu are直接位于主域之下,例如www.mypage.com/my-blogpost-about-food/不是www.mypage.com/blog/my-blogpost-about-food/

现在,所有者尚未准备好接受任何损坏的链接。来自外部的断开链接,例如一些随机的互联网页面链接到www.mypage.com/my-blogpost-about-food/。此链接在lektor中不起作用。这将降低使用lektor重新设计页面的页面排名。我该怎么做才能避免这种情况?

再次,在我们目前的wordpress网站

主要博客页面位于:

www.mypage.com/blog/

每个博客文章都有一个独特的slug,不在/blog/下,而是在主要文件中。 e.g。

www.mypage.com/my-blogpost-about-food/

我该怎么做才能使这些网址对lektor有效?例如mypage.com/my-blogpost-about-food是一篇博文。

编辑:这是lektor不支持的。 lektor中的博客帖子必须位于www.mypage.com/blog/SINGLE-BLOG-POSTS-MUSTBEHERE,但我希望博客文章位于www.mypage.com/SINGLE-BLOG-POSTS-MUSTBEHERE

在这里阅读 https://www.getlektor.com/docs/content/urls/

如果我转到系统字段并输入my-blogpost-about-food,它仍会显示在/blog/my-blogpost-about-food/

阅读here很明显我无法改变父模型中的slu ::

  

通过上述设置,博客将在博客/和帖子中发布   博客/。但是,如果你想把博客的日期   发布到网址?谢天谢地,这非常容易。你需要做的就是   为子项设置新的URL格式。只需编辑blog.ini和   将其添加到[children]部分:

slug_format = {{ (this.pub_date|dateformat('YYYY/M/') if this.pub_date) ~ this._id }}
     

它的作用是它将在年份(YYYY)和月份(M)之前   如果配置了发布日期,则为页面的ID。除此以外   它只会使用页面的ID。随着这个改变我们的博客文章   将从例如blog / hello /转到blog / 2015/12 / hello /.

现在我将如何实现与此类似的行为?

这是我们的wordpress安装的perma链接的正式: enter image description here

2 个答案:

答案 0 :(得分:1)

这是可能的。如果您从INSERT INTO table ( id, name ) SELECT ... FROM <pseudo-db> 开始使用默认设置:

  • lektor quickstart中,删除models/blog-post.ini
  • hidden = yes的分页部分下,添加models/blog.ini

第一步,您可以在admin的root用户下创建博客文章。 第二步告诉页面items = site.query('/').filter(F._model == 'blog-post')blog下查找其分页项,并且仅包括类型/的分页项。这将排除例如关于,博客等

您现在将在blog-post拥有站点的主页,在/拥有博客页面,其中列出了所有帖子,并且每个帖子都将位于/blog

要在管理员中创建新博客,请转至root管理员页面(不是 example.com/my-blogpost-about-food/管理页面),单击+,然后为新页面选择Blog Post。类型。它将显示在/blog上的列表中,并直接位于/blog下。

答案 1 :(得分:0)

我不确定我完全理解你想要达到的目标。如果我理解正确,您可以使用replaced_with for children功能解决此问题:

https://www.getlektor.com/docs/guides/categories/