前へでKBoardに新しいフィールドを追加する方法を説明しました。 どなたメール(Email)フィールドを追加するために困難があるとして KBoardでメールフィールドを追加する方法について記事を書こうと心に決めていました。 この記事では、 WordPress 掲示板プラグイン KBoard(Kboard)でメールのフィールドを追加する方法を簡単に説明します。
KBoardに新しいフィールドを追加する
まずKBoardでテキストフィールドを追加するおおよそのプロセスは、次のYouTubeのビデオを介して参照してください。 以下で説明するメールフィールドを追加も同様のプロセスで行われます。
KBoardでメールフィールドを追加する
メールフィールドを追加するには、editor.phpファイルとdocument.phpファイルなどXNUMXつのファイルを変更する必要があります。 FTP経由でKBoardスキンフォルダに移動します。 私はdefault(基本)スキンを利用します。 この場合、パスは / WP-コンテンツ/plugins/kboard/skin/defaultになります。
editor.phpファイルの変更
editor.phpファイルをファイルエディタで開くようにします。 下の部分を検索するようにします(defaultスキンではない場合、少しの違いがあることがあります)。
<?php elseif(!is_user_logged_in()):?> <div class="kboard-attr-row"> <label class="attr-name"><?php echo __('Author', 'kboard')?></label> <div class="attr-value"><input type="text" name="member_display" value="<?php echo $content->member_display?>"></div> </div> <div class="kboard-attr-row"> <label class="attr-name"><?php echo __('Password', 'kboard')?></label> <div class="attr-value"><input type="password" name="password" value="<?php echo $content->password?>"></div> </div> <div class="kboard-attr-row"> <label class="attr-name"><img src="<?php echo kboard_captcha()?>" alt=""></label> <div class="attr-value"><input type="text" name="captcha" value=""></div> </div> <?php endif?>
この部分を以下の同様修正をします。
<?php elseif(!is_user_logged_in()):?> <div class="kboard-attr-row"> <label class="attr-name"><?php echo __('Author', 'kboard')?></label> <div class="attr-value"><input type="text" name="member_display" value="<?php echo $content->member_display?>"></div> </div> <div class="kboard-attr-row"> <label class="attr-name"><?php echo __('Password', 'kboard')?></label> <div class="attr-value"><input type="password" name="password" value="<?php echo $content->password?>"></div> </div> <?php endif?> <div class="kboard-attr-row"> <label class="attr-name"><?php echo __('Email', 'kboard')?></label> <div class="attr-value"><input type="text" name="kboard_option_email" value="<?php echo $content->option->email?>"></div> </div> <?php if(!is_user_logged_in()):?> <div class="kboard-attr-row"> <label class="attr-name"><img src="<?php echo kboard_captcha()?>" alt=""></label> <div class="attr-value"><input type="text" name="captcha" value=""></div> </div> <?php endif?>
上ではわざわざログインユーザー(管理者を除く)も電子メールアドレスを入力するように設定しました。 上記の中核となるラインは次の部分です:
<input type="text" name="kboard_option_email" value="<?php echo $content->option->email?>">
document.phpファイルの変更
editor.phpファイルをユーザーがフィールドの値を入力するフォームです。 フィールドに入力した値を、管理者や本人が確認できるようにする必要があります。 この部分のためにdocument.phpファイルを変更してくれるとします。 ここでの考察は、単にoption-> email?>コードを勝手に追加する場合は、通常のユーザーも意図せず、他の人のメールを見ることができるという点です。
document.phpファイルから次の部分を検索するようにします。
<div class="detail-attr detail-view"> <div class="detail-name"><?php echo __('Views', 'kboard')?></div> <div class="detail-value"><?php echo $content->view?></div> </div> </div>
この部分を、以下のように変更してくれるようです。
<div class="detail-attr detail-view"> <div class="detail-name"><?php echo __('Views', 'kboard')?></div> <div class="detail-value"><?php echo $content->view?></div> </div> <?php if($board->isEditor($content->member_uid) || $board->isAdmin() ):?> <div class="detail-attr detail-view"> <div class="detail-name"><?php echo __('Email', 'kboard')?></div> <div class="detail-value"><?php echo $content->option->email?></div> </div> <?php endif?> </div>
実際の動作
このように処理すれば、管理者やスレッドの作成者のみメールを確認することができます。 それでは、実際どのように動作するか見てみましょう。 書く画面です。
上の図のように電子メール(Email)フィールドが追加されました。 実際の形状は、テーマによって異なります。 上記のスクリーンショットは、 Salient テーマのときの模様です。 テーマがよくてそうなのか、フォームの形が悪くはない。 その後、本文の形状をみましょう。
管理者や作成者(ログインユーザである場合)にのみEmailフィールドが表示されます。 著者でもゲストとして作成すると、メールが表示されません。
このように、電子メールのように、一般ユーザーに公開されてはならない情報は、この記事の方法を応用ください。 韓国型掲示板プラグインKboardは、このように、フィールドを自由に追加することができる柔軟性を提供します。
Tips&Tricks
次の内容は、PHPコードに精通しているユーザーを対象としています。
事実、上記の方法は、最善ではありません。 なぜならログインユーザーは、電子メールアドレスを入れる必要がないが、上記のコードを使用する場合、ログインユーザーもメールアドレスを入力する必要があるためです。
この問題を解決するには、editor.phpでメールアドレスの部分を非ログインユーザー(ゲスト)コードの中に配置する必要があります。 その後、ログインユーザーは、電子メールを入力する必要がありません。
問題は、document.phpでログインが文を作成する場合、どのよう作成者の電子メールを会員登録情報の取得かです。 この部分は、以下のコードを使用します。
$user = $content->member_uid; $current_user = get_userdata($user); echo $current_user->user_email;
メールをあのように入れるんですね。