There are multiple ways to achieve this behavior.
- Use Blog Posts (Online Store -> Blog Posts), and make sure the article has the same handle as the corresponding collection, then get article content inside the collection template like this (we're using "news" as the blog title in this example):
{% for article in blogs["news"].articles %}
{% if article.handle contains collection.handle %}
{{ article.content }}
{% endif %}
{% endfor %}
- Use Pages (Online Store -> Pages), and make sure the page has the same handle as the corresponding collection, then get the page content inside the collection template like this:
{{ pages[collection.handle].content }}
- Use collection descriptions. In Products -> Collections you can add your content in the description field, and access it in collections like this:
{{ collection.description }}
Answer from cMarius on Stack OverflowVideos
According to Shopify schema, a page is something with the url as follow - //mystorelink.com/pages/page-handle . So when you use {{ page.title }} it will display the page title only when the url is in the above format.
Don't confuse between a "Shopify page" and a "webpage" for both are completely different.
A Shopify page is a template while a webpage is a normal html page. In order for your requirement refer to following link types and templates
/or//myshoplink.com-> index.liquid ->{{ page_title }}&{{ page_description }}/collections/xyz-> collection.liquid ->{{ collection.title }}&{{ collection.description }}/products/xyzor/collections/abc/products/xyz-> product.liquid ->{{ product.title }}&{{ product.description }}/pages/xyz-> page.liquid ->{{ page.title }}&{{ page.description }}
etc similarly for other templates.
P.S. You can have multiple product/collection/pages etc. templates using suffix values, but {{ <template>.title }} remains the same
P.P.S. If nothing is to be changed you can plainly use {{ page_title }} and {{ page_description }} everywhere. It defaults to the template currently in use.
For the benefit of anyone else, here is a more comprehensive testing snippet for finding identifiers to use in Liquid conditionals, based on the accepted answer:
<div class="grid__item__nm--wrap">
<span><h1>THIS IS WHAT THE SHOPIFY PAGE TITLE IS:</h1> {{ page.title }}</span>
<span><h1>THIS IS WHAT THE SHOPIFY PAGE HANDLE IS:</h1> {{ page.handle }}</span>
<span><h1>THIS IS WHAT THE SHOPIFY PAGE TEMPLATE SUFFIX IS:</h1> {{ page.template_suffix }}</span>
<span><h1>THIS IS WHAT THE SHOPIFY PAGE ID IS:</h1> {{ page.id }}</span>
<span><h1>THIS IS WHAT THE RENDERED PAGE TITLE:</h1> {{ page_title }}</span>
<span><h1>THIS IS WHAT THE RENDERED PAGE META DESCRIPTION IS:</h1> {{ page_description }}</span>
<span><h1>THIS IS WHAT THE SHOPIFY COLLECTION TITLE IS:</h1> {{ collection.title }}</span>
<span><h1>THIS IS WHAT THE SHOPIFY COLLECTION HANDLE IS:</h1> {{ collection.handle }}</span>
<span><h1>THIS IS WHAT THE SHOPIFY COLLECTION ID IS:</h1> {{ collection.id }}</span>
<span><h1>THIS IS WHAT THE SHOPIFY COLLECTION DESCRIPTION IS:</h1> {{ collection.description }}</span>
<span><h1>THIS IS WHAT THE SHOPIFY PRODUCT TITLE IS:</h1> {{ product.title }}</span>
<span><h1>THIS IS WHAT THE SHOPIFY PRODUCT HANDLE IS:</h1> {{ product.handle }}</span>
<span><h1>THIS IS WHAT THE SHOPIFY PRODUCT ID IS:</h1> {{ product.id }}</span>
<span><h1>THIS IS WHAT THE SHOPIFY PRODUCT DESCRIPTION IS:</h1> {{ product.description }}</span>
</div>