WordPress KBoardでメールフィールドを追加する

Last Updated: 2016 年 02 月 29 日 1のコメント

前へで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>

実際の動作

このように処理すれば、管理者やスレッドの作成者のみメールを確認することができます。 それでは、実際どのように動作するか見てみましょう。 書く画面です。

KBoard - 電子メールフィールド

上の図のように電子メール(Email)フィールドが追加されました。 実際の形状は、テーマによって異なります。 上記のスクリーンショットは、 Salient テーマのときの模様です。 テーマがよくてそうなのか、フォームの形が悪くはない。 その後、本文の形状をみましょう。

KBoard メールフィールド

管理者や作成者(ログインユーザである場合)にのみEmailフィールドが表示されます。 著者でもゲストとして作成すると、メールが表示されません。

このように、電子メールのように、一般ユーザーに公開されてはならない情報は、この記事の方法を応用ください。 韓国型掲示板プラグインKboardは、このように、フィールドを自由に追加することができる柔軟性を提供します。

 


Tips&Tricks

次の内容は、PHPコードに精通しているユーザーを対象としています。

事実、上記の方法は、最善ではありません。 なぜならログインユーザーは、電子メールアドレスを入れる必要がないが、上記のコードを使用する場合、ログインユーザーもメールアドレスを入力する必要があるためです。

この問題を解決するには、editor.phpでメールアドレスの部分を非ログインユーザー(ゲスト)コードの中に配置する必要があります。 その後、ログインユーザーは、電子メールを入力する必要がありません。

問題は、document.phpでログインが文を作成する場合、どのよう作成者の電子メールを会員登録情報の取得かです。 この部分は、以下のコードを使用します。

$user = $content->member_uid;
$current_user = get_userdata($user);
echo $current_user->user_email;

メモ:


1のコメント

コメント

  1. メールをあのように入れるんですね。

    私も修正をしなければならつつのに時間が出ないですね。
    WordPressに関する情報も見ていきます。!
    応答