MovableType.net 活用ブログ

MovableType.net の新機能の使い方や、ウェブサイトの構築・運用に役立つTIPSを紹介しています。

新機能、カスタムフィールドの「メンバー」を使って、詳細なユーザー情報を表示しよう!


先日、カスタムフィールドに新たなシステムオブジェクト、「メンバー」が追加されました。
このカスタムフィールドを作成すると、メンバーのユーザー情報にフィールドが追加されます。SNSのURLや、プロフィール文など、独自でユーザー情報を追加できるようになりますよ。

例えば、ブログやメディアサイトなどで執筆メンバーが複数いる場合に「各執筆者のサイトやSNSを表示させたい!」という場合にこのフィールドが有効です。
今回はテーマ「Owned Media」上で「メンバー」のカスタムフィールドを活用して、記事の終わりにユーザ情報を表示させるカスタマイズをしてみましょう!
サンプルコードも紹介しているので是非一緒に試してみてください。

「Owned Media」の記事の終わりにユーザー情報を表示させる流れ

  1. メンバーのカスタムフィールドを作る
  2. 記事のテンプレートを編集する
  3. CSSを編集する
  4. サンプルコード

メンバーのカスタムフィールドを作る

まずはカスタムフィールドを作成します。
サイトの編集画面から、カスタムフィールド>新規に移り、必要事項を入力していきます。
システムオブジェクトをメンバーにするのがポイントです!
記事の終わりに表示させたい内容を考え、今回は以下の6つを設定しました。

  • ウェブサイト用メールアドレス
  • ウェブサイト用プロフィール画像
  • メールの表示
  • facebookアカウント
  • twitterアカウント
  • 表示プロフィール

設定については上記の画像を参考にしてください。
ウェブサイト用プロフィール画像、ウェブサイト用表示名、ウェブサイト用メールアドレスは、アカウント内で設定されているものとは別のものを使いたい場合のために用意しました。 
メールアドレスはメンバーで設定されているので、表示/非表示を切り替えるチェックボックスで対応します。

設定が終わると、メンバー>一覧>投稿者名 から入ったユーザー情報の画面にカスタムフィールドが追加されています。


これでカスタムフィールドの準備が完了しました!

記事のテンプレートを編集する

続いて、カスタムフィールドに対応できるようにテンプレート側を編集します。
執筆者情報を記事の終わりに表示させたいので、デザイン>テンプレートから記事のテンプレートを開きます。

カスタムフィールドに対応するMTタグを考えます。
プロフィール、facebookアカウント、twitterアカウントはフィールドに「入力があれば内容を表示」させます。これは<mt:If tag="CustomFieldValue" identifier="識別子">〜</mt:If>を使って対応します。
また、ウェブサイト用表示名とウェブサイト用プロフィール画像には「フィールドに入力があれば内容を表示し、なければユーザ情報に入っている内容を表示」させることにしましょう。
これは<mt:If tag="CustomFieldValue" identifier="識別子">〜</mt:If>に加えて<mt:If elseで分岐させて対応します。
メールアドレスは「チェックボックスにチェックがあれば内容を表示」という仕組みがいいですね。こちらは<mt:If tag="CustomFieldValue" identifier="member_mail" ne="0">〜</mt:If>で対応しましょう。

さらに、SNSやメールについては入力情報はリンク先のURLとして使用し、実際表示される内容はアイコンにすると自然なデザインになります。
最終的なソースコードは以下のようになりました。

(記事:88行目〜)


これで、記事テンプレートの編集は完了です!

CSSを編集する

編集したテンプレートに対応するCSSを記述します。
テンプレート>スタイルシートに、以下を追記しましょう。

(スタイルシート:1334行目〜)

.entry__authorTextWrap {
  margin-left: 120px;
}

.entry__authorList {
  display: flex;
}

.entry__authorList li {
  margin: 0 0.75rem 0 0;
    font-size: 1.5rem;
}

.entry__authorTextWrap p {
  margin-bottom: 0;
}
.entry__authorTextWrap--name {
  font-weight: bold;
  font-size: 1.5rem;
  position: relative;
  margin: 0 0 1rem;
  padding: 0 0 0.5rem;
}
.entry__authorTextWrap--name::after {
  content: "";
  width: 55px;
  height: 2px;
  background-color: #666;
  position: absolute;
  bottom: 0;
  left: 0;
}

.entry__authorTextWrap--profile {
  font-size: 1rem;
  margin-top: 1rem;
}

@media(max-width:840px) {
  .entry__authorWrap--icon {
    width: 240px;
    float: none;
    margin-right: 0;
    margin: 0 auto;
  }
  .entry__authorWrap--icon img {
    width: 100%;
  }
  .entry__authorTextWrap {
    margin-left: 0;
  }
}

CSSを保存し、カスタムフィールド内に情報を入力してみましょう…




記事のおわりに、メンバーの紹介がつきました!
リンク先はカスタムフィールドで設定したURLになっているはずです。
これで「Owned Media」のユーザー情報の表示が完成です!
CSSはお好みでアレンジしても良いでしょう。

以上が新機能、メンバーのカスタムフィールドを使ったユーザー情報の表示の手順でした。
もちろん、「Owned Media」以外のテーマで同じようにカスタマイズできます。ニュースやメディア系のブログなどにも応用できそうですね♪
ぜひお試しください!

アカウント作成は無料! 同じアカウントでウェブサイトをいくつでも作成でき、作成したウェブサイト毎に14日間無料で利用可能です。

アカウント作成