ホーム > タグ > カスタムフィールド

カスタムフィールド

SOY CMS で PHP を使って記事ごとに設定を任意で変えられるようにしているときに「cms:id」などが含まれている場合の対処法。

(2011.01.26:PHP の書き方を変更したコードを追記しました)

「新着情報」などのコンテンツをトップページやアーカイブで表示するとき、記事ごとに任意で設定を変えることがあります。
「重要!」などのアイコンの表示/非表示とか、太字にする/しないとか、リンクを設定する/しないとか。
カテゴリー名を表示するだけならシステム側で自動にできるんですが、これらの設定は人(記事の編集者)が手動で設定することになります。

SOY CMS(ver.1) でそれを実現するには、カスタムフィールドでその設定項目(チェックボックスなど)を追加して、表示させたいページに PHP の if 文を追記します。
その手順などは以下の記事で紹介されているので、カスタムフィールドの設定方法とか PHP 文の細かい意味とか、詳しいことはそちらを参照ください。
»SOY CMSのカスタムフィールドを使った条件分岐(1) | ウェビンブログ | 札幌のWebデザイナー・カスタマイズアドバイザー WebbingStudioのよしなし語り

僕の方では、ちょっとだけ応用の話を書きます。

とりあえず下準備の手順などを簡単に書いておくと、

  1. SOY CMS の管理画面で「プラグイン」タブを選択し、「カスタムフィールド」プラグインを有効にする
  2. 「プラグインの詳細設定」で、任意の ID とフィールド名を入力し、プルダウンから「チェックボックス」を選択して、カスタムフィールドを追加する。
    (僕は今回、詳細記事へのリンクの切り替えをしたかったので、IDは「to_detail」、フィールド名は「詳細へ」にしました)
  3. 追加したフィールドの「高度な設定」をクリックし、ラベルの関連付けを行う。(ここで関連付けたラベルの記事の編集画面にのみ、設定項目が表示されるようになる)
  4. 表示させたいページに PHP の if 文を追記する。

という感じ。

カスタムフィールドの追加は特に難しくないと思いますが、問題なのは PHP です。
この記事の続きを読む

カスタムフィールドの指定したキーの値だけ表示する方法

カスタムフィールドに入力した値を出力するには、

<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
<?php the_meta(); ?>
<?php endwhile; endif; ?>

というテンプレートタグを使うのが最も基本的な方法です。
ただ、これだと入力したすべてのキーと値が一つの<ul>リストで出力されてしまい、使い勝手が良いとは言えません。

指定したキーの値を個別に出力できればなぁ……、と思っていろいろ調べた結果、実は別の関数を使えば簡単に出来ちゃうことが分かりました。
手元にある本のうち1冊にだけ載ってたような情報で、改めてググってみてもほとんど見つからず。
ってことは意外に知られていない方法なのかも。
(get_post_meta() 関数を使うのが本来の方法だというような気がしないでもないですが、より簡単に使える方が良いだろうということで)

この記事の続きを読む

1 / 11

Home > Tags > カスタムフィールド

リンク
フィード
メタ情報

このページのトップへ