自定义博客主页

4

我一直在尝试弄清楚一些人如何使用模板代码创建一个正常工作的自定义首页。以下是我尝试过的方法:

<b:if cond='data:blog.url == data:blog.homepageUrl'>
// code
<b:else/>
// code
</b:if>

这个方法很好用,但是你无法编辑或添加小工具到Blogger的"管理 > 布局"区域。它只会显示在<b:if cond='data:blog.url == data:blog.homepageUrl'><b:else/>标签内的小工具部分。
我可以使用CSS和display:none来实现相同的效果,并且可以通过管理区域进行编辑,但是当查看网站的任何部分时,它将加载不必要的内容,增加了加载时间。
我甚至尝试过:
<b:if cond='data:blog.url == data:blog.homepageUrl'>

对于主页和其他所有页面,我都使用了:

<b:if cond='data:blog.url != data:blog.homepageUrl'>

这有助于减少未加载的内容量,但会破坏帖子的“预览”功能。它只会在预览中显示主页信息,而不是需要预览的实际帖子。
我应该如何正确地做到这一点?我知道这是可以做到的,因为我曾经看到过这样的做法。有一些出售此类功能的博客主题。但我怎么也想不通...

你想要实现什么样的实际输出? - Rahul Shah
抱歉,我以为那很清楚。通过模板创建一个没有任何主要缺陷的主页。我能够使用各种方法通过模板创建主页,但每种方法都有其缺点。我看到一些作者可以做到没有任何缺点... - Xarcell
您的主页和帖子页面有什么不同?小部件数量?还是小部件的尺寸?或者是其他一些因素? - Rahul Shah
主页上没有博客文章,只有专属于主页的小部件区域。 - Xarcell
你尝试过在HTML布局中搜索想要更改的内容,将锁定值更改为false(然后在模板页面上删除不需要的项目)吗? - user5306470
3个回答

0
我可能明白你的问题。
<b:if cond='data:blog.pageType == "item"'> <data:post.body/> </b:if>

你不需要在主页上有任何帖子,而是希望将它们全部放在名为“博客”的标签下。 点击这里 希望你能在这里找到所需的一切。

我尝试了另一种方法来实现这个。

进入Blogger >> 仪表盘 设置 >> 帖子和评论 将主页上显示的帖子数设置为0。然后按照上面的答案中所说的方法隐藏“无帖子”文本。通过将所有帖子放在名为“博客”的标签下,在一个标签页面上显示这些帖子,例如blog.blogspot.com/search/label/blog。

我非常确定这个方法有效。


0

对于小部件

在您的模板代码中包含所有小部件。这将导致“布局”部分具有所有小部件.....现在我们将使用条件标签来决定我们是否只想在主页、帖子页面或任何特定的url/tag页面上拥有它们。如何执行此操作的教程在此处

对于其他所有内容

将代码<data:post.body/>放入模板中将返回实际的帖子内容。

因此,这段代码

<b:if cond='data:blog.pageType == "item"'>
<data:post.body/>
</b:if>

只会在文章页面而不是主页上显示文章内容


这个方法存在问题,因为我已经尝试过了。如果我使用'<b:if cond='data:blog.pageType == "item"'>', 那么就没有“博客页面”。换句话说,如果我访问“mydomain.com/search/blog”,就不会出现博客文章。目标是创建一个主页,但仍然需要一个带有博客列表或“博客页面”的页面。 - Xarcell

0

这似乎是解决方案,因为我还没有发现任何问题。

在除主页以外的所有页面上显示:

<b:if cond='data:blog.url != data:blog.homepageUrl || data:view.isLayoutMode || data:view.isPreview'>
    your code here
</b:if>

这对于在主页以外的地方加载小部件非常棒。虽然我花了6年时间才弄明白,这有点遗憾。

编辑:从条件中可以看出,它不会显示在主页(索引)、管理布局模式或帖子预览中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接