Shopify 新入力設定 article_list の特徴と使い分け

Shopifyテーマの新入力設定「article_list」の特徴と使い分け ― blog.articlesとの違いを整理

2026年1月にShopifyテーマの入力設定に新しいタイプ article_list が追加されました。従来の article(単一記事の選択)に対して、複数の記事をまとめて選択できるピッカーが利用できるようになっています。

実際にこの設定を使ってみたところ、従来の blog.articles とは性質が異なる点がいくつかありました。その違いと、ユースケースに応じた使い分けについてまとめます。

article_list 設定の概要

article_list は、テーマのセクションやブロックの {% schema %} 内で使用できる入力設定タイプです。テーマエディタ上に記事ピッカーが表示され、マーチャントが公開済みの記事を複数選択できます。

schemaの記述例

以下はDawnテーマの featured-blogs.liquidarticle_list 設定を追加した例です。左側がschema定義、右側がLiquidテンプレートでの参照コードです。

featured-blogs.liquid コードエディタ(article_list設定とLiquid)

{
  "type": "article_list",
  "id": "featured_articles",
  "label": "Featured articles",
  "limit": 6
}

Liquidでの使い方

{%- for article in section.settings.featured_articles -%}
  <h3>{{ article.title }}</h3>
  <p>{{ article.excerpt_or_content | strip_html | truncate: 100 }}</p>
  <a href="{{ article.url }}">Read more</a>
{%- endfor -%}

limit 属性で選択可能な最大件数を指定できます(デフォルト・上限ともに50件)。選択された記事は配列として返されるので、for ループで処理できます。

article_list の特徴:ブログを跨いで記事を選択できる

従来の blog.articles は特定のブログに属する記事のみを取得するオブジェクトでしたが、article_list ではストア内の全ブログから記事を横断的に選択できます。「ニュース」ブログと「ノート」ブログの記事を混在させてピックアップする、といったことがテーマエディタの操作だけで可能になります。

テーマエディタ article_listピッカー画面

注意点:新着記事は自動で表示されない

ここが blog.articles との大きな違いです。

blog.articles はブログに投稿された記事を公開日順で自動的に取得するので、新しい記事を公開すれば何もしなくても一覧に反映されます。一方、article_list はピッカーで手動選択した記事のみが表示対象です。新しく記事を公開しても、テーマエディタで改めてその記事をピッカーに追加しなければ表示されません。

ピッカー内の記事リストは公開順で表示されるので、最新の記事を見つけること自体は容易ですが、都度テーマエディタを開いて選択し直すという運用作業が発生します。

以下は管理画面のブログ記事一覧です。ピッカーのリスト順がこの公開日順と一致していることが確認できます。

Shopify管理画面 ブログ記事一覧(公開日順)

blog.articles article_list
記事の取得元 特定のブログに属する記事 全ブログから横断的に選択
新着記事の反映 自動(公開すれば表示される) 手動(ピッカーで追加が必要)
表示順 公開日順(自動) ピッカーでの選択順
ブログ横断 単一ブログのみ 対応
用途 ブログの新着一覧 特集・おすすめ記事のキュレーション

ブログ横断で新着記事を自動表示したい場合

article_list は「ブログを跨いで選択できる」のが魅力ですが、「新着を自動で表示する」という要件が加わると、手動選択という性質がそぐわなくなります。

複数のブログを混在させて新着記事順に自動で表示したい場合は、従来のLiquidコードで対応する方法があります。

Liquidで複数ブログの記事を結合して新着順に表示する

{%- liquid
  assign all_articles = blogs.news.articles | concat: blogs.note.articles
  assign all_articles = all_articles | sort: 'published_at' | reverse
-%}

{%- for article in all_articles limit: 6 -%}
  <div>
    <h3>{{ article.title }}</h3>
    <span>{{ article.published_at | date: "%Y-%m-%d" }}</span>
    <span>{{ article.blog.title }}</span>
    <a href="{{ article.url }}">Read more</a>
  </div>
{%- endfor -%}

blogs.news.articlesblogs.note.articlesconcat フィルタで結合し、sort: 'published_at'reverse で新着順にソートしています。新しい記事を公開すれば自動的にリストの先頭に表示されます。

ブログハンドルの指定について

Liquidの blogs グローバルオブジェクトはハンドルを直接指定する形式(blogs.newsblogs['my-blog'])でアクセスします。テーマエディタから動的にブログを選択させたい場合は、セクションのschemaに blog 型の設定を対象ブログの数だけ用意し、それぞれの .articlesconcat で結合する形になります。

さらに、テーマエディタから対象ブログを動的に選択できるようにする場合は、以下のようにschemaに blog 型の設定を複数持たせる形になります。

// schema
{
  "settings": [
    { "type": "blog", "id": "blog_1", "label": "Blog 1" },
    { "type": "blog", "id": "blog_2", "label": "Blog 2" }
  ]
}
// Liquid
{%- liquid
  assign all_articles = section.settings.blog_1.articles
  if section.settings.blog_2 != blank
    assign all_articles = all_articles | concat: section.settings.blog_2.articles
  endif
  assign all_articles = all_articles | sort: 'published_at' | reverse
-%}

{%- for article in all_articles limit: 6 -%}
  ...
{%- endfor -%}

まとめ:ユースケースに応じた使い分け

やりたいこと 方法
特定ブログの新着記事を自動表示 blog.articles をそのまま使用
ブログを跨いで特定の記事をピックアップ article_list 設定を使用
複数ブログの新着を混在させて自動表示 concat + sort による従来のLiquidコード

article_list は「おすすめ記事」や「特集記事」のようなキュレーション用途には最適です。一方、「新着記事を常に最新の状態で表示したい」という要件には従来の方法が適しています。両方の特徴を理解して、ストアの運用に合った方法を選択するのが良いでしょう。

関連リンク

ブログに戻る