質問: shopifyの初心者です。 bodyタグに商品毎、コレクション毎、固定ページ毎などそれぞれ独自のidもしくはclassを付与したいと考えています。 過去記事を探していた所、下記内容が希望していた内容でした。 ただ、こちらの記述を利用させてもらうと、 タイトルを出力するので、idやclassが日本語表記になってしまいます。 【例】 コレクションが動物 商品名が猫 ▼記述 ▼出力 こちらの解決策として、商品毎、コレクション毎、固定ページ毎それぞれ登録する際に、 URLとハンドルの部分を英語表記に変更しようと考えております。 【例】 コレクションが動物 URLとハンドルはanimal 商品名が猫 URLとハンドルはcat ▼出力したい例 記述の変更を下記ページを確認しながら検証していたのですが、うまく出力できませんでした。 お手数おかけしますが、bodyタグの記述を教えていただけたらと思います。 ご確認どうぞよろしくお願いします。 解決済! ベストソリューションを見る。
回答: ``` id="{{ page_title | handle }}" ``` 上記ですが、これは「ページのタイトルをハンドル形式に変換して出力」というコードになるため、ページのハンドルを出力するコードではありません。 handleフィルターに関しては以下を参照ください。 {{ page_handle }}というオブジェクトはないようなので(ありましたら他の方ご指摘いただけると助かります)、以下のようにページごとにハンドルを取得して出力することになると思います。 ``` {% if request.page_type == 'product' %} {% assign body_id = product.handle %} {% elsif request.page_type == 'collection' %} {% assign body_id = collection.handle %} {% elsif request.page_type == 'page' %} {% assign body_id = page.handle %} {% else %} {% assign body_id = 'otherpages' %} {% endif %} {% capture handle_class %}{{ request.page_type }}-{{ body_id }}{% endcapture %} ``` 上記は、とりあえず商品とコレクションとページとそれ以外で分けており、それ以外の場合はidが「otherpage」と出力されます。 一応classの方もid用の値を利用して作りましたが、コレクションのみに出力したい場合はif文で出力条件を限定してください。 なお下記URLを参照いただければ他のページに対する分岐も作れますので、必要に応じて作成いただければと思います。