LoginSignup
1
0

【PowerCMS】カンマ区切りに入力した記事をループで出力

Last updated at Posted at 2022-03-02

はじめに

PowerCMS
記事IDをカンマ区切りで入力し、その記事を一覧に出力する方法。

入力フィールド

出力させたい記事のIDをカンマ区切りで入力。
qiita_powercms_img.png
記事IDとは?
記事IDは6ケタの数字から成り、URLから確認することができます。
(※ちなみにブログIDは4ケタの数字)
image.png
上の添付画像だと、記事IDは「155975」になります。

コード

入力されたIDを持つ記事を一覧に表示させます。

<ul class="article-list"> 

<MTIfExtFieldType type="text" label="記事ID">
 <$MTExtFieldText label="記事ID" setvar="article_ids"$>
</MTIfExtFieldType> 

<mt:splitvars text="$article_ids"> 
 <MTEntries id="$value"> 
    <li class="article-item"> 
      <a href="<$MTEntryPermalink$>"> 
       <p class="title"><$MTEntryTitle$></p>
      </a> 
    </li> 
 </MTEntries> 
</mt:splitvars>

</ul> 

タグの説明

<MTIfExtFieldType type="text" label="記事ID">
 <$MTExtFieldText label="記事ID" setvar="article_ids"$>
</MTIfExtFieldType> 

入力欄「記事ID」に入力された値を、変数「artcle_ids」に代入する。

<mt:splitvars text="$article_ids"> 

MTSplitVars:text モディファイアで指定した文字列(記事ID)を、delimiter モディファイアで指定した文字列(:(コロン)など)で分割し、変数 valueにセットしてループ出力を行う。
ただしdelimiter モディファイアの初期値はカンマ区切りなので、今回は指定しない。
(入力フィールドでカンマ区切りにIDを入植しているため)

textモディファイアには文字列ではなく変数を入れることができる。
今回は「$article_ids」としました。

<MTEntries id="$value"> 

splitvarsで分割された値(記事ID)が変数valueにセットされる。

MTEntries:ブログの記事の一覧のためのブロックタグ。
モディファイアを指定することで、記事の並び替え特定の記事だけを表示させることが可能。

idモディファイアに記事IDを入力すると、該当記事が出力される。
今回はループされているため、「id」に155246、155965、155972、155973、155974が順番に入る。

注意点

<mt:splitvars text="$related_ids">

★ textモディファイアに変数を代入する場合、変数名の前に「$」をつける。
★ 変数名にハイフン(-)は使用できないので注意!
 OK:article_ids
 NG:artcle-ids

参考サイト

MTSplitVars | PowerCMS
MTEntries | PowerCMS

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0