WEBOPIXEL

WordPressのプロフィール編集画面にカスタムフィールドを追加するプラグイン「Cimy User Extra Fields 」

Posted: 2010.09.06 / Category: WordPress / Tag: , ,

管理画面のプロフィール編集画面にカスタムフィールドを追加できるプラグイン「Cimy User Extra Fields 」のご紹介です。
「Cimy User Extra Fields 」は通常のテキストフィールドの他にも、画像アップローダーやチェックボックスなどのフィールドをGUIの操作で追加することができます。

Sponsored Link

なおこお記事は、Wordpress3.01、Download Cimy User Extra Fields 2.0を使用します。

プラグインのダウンロード

下記URL「Download Cimy User Extra Fields 2.0」からプラグインをダウンロードしてください。

marcocimmino.net » Cimy User Extra Fields for WordPress

Cimy User Extra Fieldsオプション設定

プラグインをダウンロードしたら、通常通り「plugins」フォルダにアップしてインストールしましょう。
また、「wp-content」フォルダに「Cimy_User_Extra_Fields」という名前で新たにフォルダを作成します。
「Cimy User Extra Fields 」から画像を保存する場合、Wordpressの設定画面で指定してあるフォルダには保存されないでこちらに保存されます。

プラグインを有効にすると設定のサブメニューに「Cimy User Extra Fields 」が表示されます。
上部メニューではとりあえず「User Profile」の「Extra Fields section title」だけ設定しておきます。
ここの文字は追加されるカスタムフィールドの見出しになります。

カスタムフィールドの見出設定

次に最下部の「Add a new Field」です。ここで追加するカスタムフィールドの設定を行います。
主な項目の説明です。

名前 テンプレートから呼び出すときのキー
デフォルトの値
Type カスタムフィールドのタイプ
Label 管理画面でのラベル名
説明 管理画面での説明文

他に文字数を制限する「Max length」などがあります。テキストエリアなどは設定したくても大丈夫ですが、「picture」を選択した場合「Max size」を選択しないと項目が追加されないようです。 入力が終わったら「Add fied」を押しましょう。
「Add a new Field」の下の「Extra Fields」に今入力した項目が表示されていれば成功です。

今回は次のように設定しました。

ユーザープロフィール設定

設定が終わったら実際にカスタムフィールドが追加されているか確認しましょう。
ユーザーサブメニューには新たに「A&U Extended」という項目が追加されています。
このメニューはユーザー一覧を表示しますが、通常のと違い新たに追加したカスタムフィールドの情報も表示されます。

ユーザー名をクリックして編集画面に移動します。
最下部に追加したカスタムフィールドが表示されているはずです。
適当に入力して「ユーザー更新」ボタンを押します。

ユーザープロフィールカスタムフィールド項目

テンプレートファイルを編集

テンプレートファイルは「author.php」を編集します。ファイルがない場合は新たに作成しましょう。
また、authorテンプレートのカスタマイズは「ユーザーページ(author.php)テンプレートをカスタマイズする」も参考にしてください。

プラグインで設定したカスタムフィールを取得するには「get_cimyFieldValue」関数を使用します。
「get_cimyFieldValue」の書式は次のようになります。

$value = get_cimyFieldValue(ユーザーID, フィールド名);

authorテンプレートでは、「$author」でユーザーIDを取得することができます。
フィールド名は「名前」の項目で入力した値になります。
なので設定したカスタムフィールド「紹介文」を表示するには次のようにするとよさそうです。

author.php

		<?php
			$value = get_cimyFieldValue($author, 'INTRO');
			echo cimy_uef_sanitize_content($value); 
		?>
	

とりあえず表示できたはずです。
表示するには「cimy_uef_sanitize_content」関数を使用すれサニタイズ処理をしてくれるようなのですが、これだとせっかくリッチテキストフィールドで入力してもあまり意味ないですね。

author.php

		<?php
			echo get_cimyFieldValue($author, 'INTRO');
		?>
	

当然ですが、そのままechoすればエスケープされません。
テンプレートができたら下記URLで確認してみましょう。

http://www.example.com/author/[ユーザー名]

画像を表示

「picture」で設定した画像も表示してみましょう。これも基本的に変りません。

author.php

		<?php $avater = get_cimyFieldValue($author, 'AVATER_IMG'); ?>
		<img src="<?php echo cimy_uef_sanitize_content($avater); ?>" width="50" height="50" class="avatar" />
	

URLが保存されてますのでimgのsrcの部分に表示させるだけですね。

COMMENTS

マッキー 2012-02-26 13:39 

分かりやすい説明、いつもありがとうございます。
全く同様のことをしたくて、この手順にしたがってインストールなど行いました。
最後の最後の部分で、思った通りにできない部分がありましたので質問させてください。

textarea-richで用意した自己紹介フィールドの「ビジュアル」タブでテキストを記入したときに、改行などしても「HTML」タブ側でbrが吐かれている様子もなく、その結果、Authorの表示画面においても、改行の無い見ずらい文章になってしまいます。
どこかの設定の影響を受けているのか、それとももともとこのプラグインの仕様なのか、分かりましたら教えていただきたく。

余談ですが、管理画面>ユーザー>あなたのプロフィール の上にある「ビジュアルリッチエディターを使用しない」はOFFにしてあります。
もし、分かりましたら、ご教授ください。よろしくお願いいたします。

マッキー 2012-02-26 13:44 

#すみません、追記です。
上記は、サニタイズしないやり方でも改行が入りません。念のため…。

webOpixel 2012-02-27 10:20 

改行は改行コードで保存されますので、
echo nl2br(get_cimyFieldValue($author, ‘INTRO’));
とすれば改行の部分はbrに変換できます。

もっと良い方法がプラグインの機能であるかもしれませんが、、、何かわかりましたらまた追記します。

マッキー 2012-02-29 02:01 

ご指摘のnl2brを使ってみたら、改行が入るようになり、無事、期待してた動作になりました。
お忙しい所、すぐに助言頂き、ありがとうございました!!

LEAVE A REPLY

コードを書く場合は<pre>で囲んでください。