ブログを扱うblog objectに関するメモ。
概要
サンプルコード
ブログ用以外のliquidテンプレートでどこでもブログの情報を出力するためには以下のようなコードを用います。
ブログの一覧を表示させる
どこでもブログの一覧を表示させるためには以下のようにグローバルオブジェクトのblogsを用い、ハンドル(例としてShopifyの初期ブログのハンドルnews)を指定してforを使います。
<ul>
{% for article in blogs['news'].articles %}
<li><a href="{{ article.url }}">{{ article.title | escape }}</a></li>
{% endfor %}
</ul>
必要なのは「ブログのハンドル」であり、「ブログ記事のハンドル」ではありません。以下のURLのようなブログ管理ページで操作と確認ができます。
- 〇〇.myshopify.com/admin/blogs
またはテーマエディタにブログを表示するセクションが設定されている場合は、そこを利用して新たにブログ(既存のnewのと同種の位置付けのもの)を追加可能ですが、その場合は入力した文字列のまま、つまり日本語なら日本語のまま(=URLエンコードされた状態)になってしまうと思います。
全ブログのハンドルの一覧を取得する方法は調べてもわかりませんでした。これがわかれば全ブログの記事一覧も作れると思うのですが。
blogsのみでは使えない
以下のようにblogsのみでハンドルを指定しない方法では動作しません。
{% for blog in blogs %}
{{ blog.title }}
{% endfor %}
参考URL
ブログの記事を単体で表示させる
上記URLに書かれているグローバルオブジェクトで出力可能です。
{% assign article = articles['news/hello-world'] %}
{{ article.title | link_to: article.url }}
結び
Shopifyにはブログが複数作れますが、この複数というのは通常のブログのカテゴリー的なものだと考えた方がわかりよいかもしれません。
3人がこの記事を評価
役に立ったよという方は上の「記事を評価する」ボタンをクリックしてもらえると嬉しいです。
連投防止のためにCookie使用。SNSへの投稿など他サービスとの連動は一切ありません。