会員サイトなどで、ユーザーが自由に投稿できるサイトの場合、投稿内から著者のユーザー宛にメッセージを送りたいときに使えます。
メッセージタイトルに投稿のタイトルも含まれるので、受け取ったユーザーは何の投稿に関するメッセージなのかが分かります。
functions.phpへの記述(メッセージボタンの内容と記事タイトルを含ませる)
function bpfr_pm_to_author() {
echo '<a href="'.wp_nonce_url( bp_loggedin_user_domain() . bp_get_messages_slug() . '/compose/?r=' . get_the_author_meta( user_nicename ). '&subject=「' . get_the_title().'」' ) .' title="Private Message"">メッセージを送信</a>';
}
compose.phpへの記述(プライベートメッセージボタンから送信フォームに記事タイトルを受け取る)
Buddypressディフォルトのテーマを使用している場合
(bp-default/members/single/messages/compose.php)に記述し
それ以外のテーマの場合はBuddypressのテンプレートに直接記述します。
(buddypress/bp-templates/bp-legacy/buddypress/members/single/messages/compose.php)
compose.php内subjectの記述を
<input type="text" name="subject" id="subject" value="<?php bp_messages_subject_value(); ?>" />
下記に書き換える
<input type="text" name="subject" id="subject" value="<?php if ( isset( $_GET['subject'] ) ) echo $_GET['subject']; else bp_messages_subject_value(); ?>" />
メッセージ送信ボタンを投稿記事内の任意の場所に表示させる
<?php //ログインしているユーザーにのみ表示
if ( is_user_logged_in() ) { ?>
<?php //メッセージ送信ボタン表示部分
bpfr_pm_to_author(); ?>
<?php //ログインしていないユーザーへの表示
}else{ ?>
メッセージの送信にはログインする必要があります
<?php }; ?>
コメント