惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
Y
Y Combinator Blog
I
InfoQ
Recent Announcements
Recent Announcements
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - Franky
IT之家
IT之家
H
Help Net Security
月光博客
月光博客
S
SegmentFault 最新的问题
B
Blog
aimingoo的专栏
aimingoo的专栏
GbyAI
GbyAI
P
Proofpoint News Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
G
Google Developers Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
U
Unit 42
Vercel News
Vercel News
博客园 - 叶小钗
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC
Jina AI
Jina AI
T
The Blog of Author Tim Ferriss

博客园 - QDuck

Handlebars.js入门教程 GHOST CMS - Handlebars Themes - Further Reading GHOST CMS - Properties GHOST CMS - Redirects GHOST CMS - Content Collections GHOST CMS - Content Taxonomies GHOST CMS - Custom Routes GHOST CMS - Google AMP谷歌地图 GHOST CMS - URLs & Dynamic Routing GHOST CMS - Responsive Images 图片显示 GHOST CMS - Editor编辑器 GHOST CMS - Utility Helpers公用事业帮手 GHOST CMS - Data Helpers GHOST CMS - Functional Helpers功能助手 GHOST CMS - 标签Tag GHOST CMS - Author作者 GHOST CMS - Page 页面 GHOST CMS - Post 文章 GHOST CMS - 索引Index
GHOST CMS - Channels
QDuck · 2019-12-22 · via 博客园 - QDuck

Channels

If you want something more flexible than taxonomies, but less rigid than collections, then channels might be for you.

A channel is a custom stream of paginated content matching a specific filter. This allows you to create subsets and supersets of content by combining or dividing existing posts into content hubs.

Unlike collections, channels have no influence over a post's URL or location within the site, so posts can belong to any number of channels.

The best way to think of channels is as a set of permanent search results. It's a filtered slice of content from across your site, without modifying the content itself.


Creating a channel

Channels are defined as a custom route, with a custom controller property called channel, and a filter to determine which posts to return.

routes:
  /apple-news/:
    controller: channel
    filter: tag:[iphone,ipad,mac]
  /editors-column/:
    controller: channel
    filter: tag:column+primary_author:cameron

In this example there are two channels. The first is a channel which will return any posts tagged iPhoneiPad or Mac on a custom route of site.com/apple-news/.

The second is a special Editor's Column area, which will return any posts tagged with Column, but only if they're explicitly authored by Cameron.

These are two small examples of how you can use channels to include and exclude groups of posts from appearing together on a custom paginated route, with full automatic RSS feeds included as standard. Just add /rss/ to any channel URL to get the feed.


When to use channels vs collections

Collections and channels share a lot of similarities, because they're both methods of filtering a set of posts and returning them on a custom URL.

So how do you know when to use which?

You should generally use a collection when...

There's a need to define permanent site structure and information architecture

  • You're sorting different types/formats of content
    eg. posts are blog posts OR podcasts
  • You're filtering incompatible content
    eg. posts are either in English OR German
  • You want the parent filter to influence the post's URL
    eg. an index page called /news/ and posts like /news/my-story/

You might be better off with a channel if...

All you need is a computed view of a subsection of existing content

  • You're combining/grouping different pieces of content
    eg. posts tagged with news AND featured
  • You're dividing existing streams of content with multiple properties
    eg. posts tagged with news but NOT authored by steve
  • You want to be able to update/change properties without affecting post URLs
    eg. quickly creating/destroying new sections of a site without any risk

If you're still not sure which is the best fit for you, drop by the Ghost Forums and share what structure you're hoping to accomplish. There's a large community of Ghost developers around to help.