2014-04-29:該插件長(zhǎng)期不更新,已有另外一個(gè)作者將該插件升級(jí),并且改名為 Front End PM ,具體請(qǐng)看 WordPress 前端站內(nèi)信插件 Front End PM
倡萌之前推薦過(guò)《WordPress 站內(nèi)信插件:Private Messages For WordPress》該插件功能還是比較齊全的,如果是在WP后臺(tái)使用的話,還相當(dāng)不錯(cuò),但是如果想在前端使用,就沒(méi)那么簡(jiǎn)單了,雖然作者提供了一個(gè)簡(jiǎn)單的模板,但是倡萌測(cè)試發(fā)現(xiàn),前端使用真的存在很多問(wèn)題。而且該插件已將近一年沒(méi)有更新了,沒(méi)有后續(xù)支持的插件,也是個(gè)麻煩事。
所以倡萌今天要推薦一個(gè)專門在前端使用的站內(nèi)信插件:Cartpauj PM,該插件后臺(tái)只有簡(jiǎn)單的設(shè)置選項(xiàng),所有功能都是在前臺(tái)使用。
主要特色:
- 支持管理員設(shè)置用戶的信箱容量;
- 支持管理員給所有用戶發(fā)送公告;
- 有新信息時(shí)可以郵件通知;
- 支持用戶自己設(shè)置是否接收信息、是否郵件通知;
- 對(duì)話式的信息回復(fù),信息交流一目了然;
- 采用所見(jiàn)即所得的BBcode(UBB)編輯器;
- 羅列所用用戶,方便一鍵點(diǎn)擊發(fā)布信息
有待提高:
- 前端效果實(shí)在不是一般差;
- 收件人使用的是用戶名 username,而不是顯示名display_name(一般網(wǎng)站都只顯示用戶的顯示名),所以發(fā)站內(nèi)信需要知道對(duì)方的用戶名;
- 目前不支持上傳附件(作者計(jì)劃實(shí)現(xiàn))
- 要是可以添加后臺(tái)使用就完美了
已知問(wèn)題:
信息的發(fā)送時(shí)間默認(rèn)使用的是 格林尼治標(biāo)準(zhǔn)時(shí)間(GMT),和國(guó)內(nèi)時(shí)間相差 8 小時(shí)。要修復(fù)這個(gè)問(wèn)題,打開(kāi) pm-class.php 找到
current_time(‘mysql’, $gmt = 1) 將 $gmt = 1 改為 $gmt = 0 (似乎共有3處)。
默認(rèn)前端顯示效果:

對(duì)話式的信息流(已經(jīng)過(guò)倡萌美化):

具體效果,請(qǐng)登錄 WordPress大學(xué) 查看站內(nèi)信。
在后臺(tái)插件安裝界面搜索 Cartpauj PM 即可在線安裝,或者下載 Cartpauj PM
分享一些有用的調(diào)用代碼:
1.調(diào)用最新公告
將代碼添加到主題的 functions.php 或插件文件:
/**
* 調(diào)用cartpauj_pm的公告
*/
function getLastAnnouncement(){
global $wpdb;
// message_read = 12 表明這條是公告
$results = $wpdb->get_results($wpdb->prepare("SELECT * FROM ". $wpdb->prefix ."cartpauj_pm_messages WHERE message_read = 12 ORDER BY id DESC LIMIT 0 , 1" , '' ));
return $results;
}
function the_getLastAnnouncement(){
$announcements = getLastAnnouncement();
foreach ($announcements as $announcement)
{
$announce .= "<b>".$announcement->message_title."</b>: "; // 顯示公告標(biāo)題
$announce .=" <small>(".$announcement->date.")</small>"; //顯示公告日期
$announce .= $announcement->message_contents; // 顯示公告內(nèi)容
}
return $announce;
}
然后在需要顯示的地方使用下面的代碼調(diào)用:
<?php if(function_exists('the_getLastAnnouncement')) echo the_getLastAnnouncement(); ?>
2.調(diào)用當(dāng)前用戶未讀站內(nèi)信數(shù)量
將下面的代碼添加到主題的 functions.php
/**
* 獲取未讀站內(nèi)信數(shù)量
*/
function unread_messages_number(){
//如果用戶已登錄并且啟用了 cartpauj PM 插件
if(is_user_logged_in() && class_exists("cartpaujPM")){
global $cartpaujPMS;
$numNew = $cartpaujPMS->getNewMsgs();
// 如有未讀信息就顯示提示內(nèi)容
if($numNew) echo "您有". $numNew ."條未讀信息";
}
}
然后使用下面的代碼調(diào)用
<?php if(function_exists('unread_messages_number')) unread_messages_number(); ?>





倡萌大哥 怎么設(shè)置和你一樣的樣式啊,默認(rèn)的好難看哦
這個(gè)東東升級(jí)成fep后,調(diào)用未讀取消息的函數(shù)要改嗎??
這個(gè)插件,用戶發(fā)送信息給管理員后,我管理員打不開(kāi)收信頁(yè)面了,但是用戶可以。
不知道你是不是改了什么代碼導(dǎo)致的,我一直沒(méi)發(fā)現(xiàn)這樣的情況
憂傷憂傷、、、 ?? ??
嗨,我找到問(wèn)題了。
插件用的表是innode,而PHP報(bào)錯(cuò)是查詢不到表
就是界面有點(diǎn)丑
謝謝博主的分享!