本文目錄1WP Favorite Posts 簡介2WP Favorite Posts 安裝設置3WP Favorite Posts 使用方法4WP Favorite Posts 高級技巧(備用)4.11.調用文章的收藏次數4.22.收藏列表 的另一種調用方法4.33.獲取某個用戶的收藏數量4.44.刪除文章後統計不準確
最近一直在考慮 WordPress大學 的設計問題,尤其是如何做好註冊用戶體驗。考慮添加一個文章收藏的功能,讓大傢收藏自己喜歡的文章,然後在一個頁面生成列表,並且在側邊欄顯示最近收藏的文章,這樣一來,大傢以後就可以很方便找到自己需要的文章。於是找到瞭 WP Favorite Posts 這個WordPress文章收藏外掛,試瞭一下,感覺不錯。
WP Favorite Posts 簡介
WP Favorite Posts 是一個不錯的WordPress文章收藏外掛,可以在文章頁面中添加收藏按鈕,用戶可以點擊收藏自己的文章,並且可以在專門的頁面中顯示自己收藏的文章,還支援“最近收藏的文章(每個人看到自己的)”“全站收藏次數最多的文章”這兩個小工具。
最值得一提的 WP Favorite Posts 通過瀏覽器cookie和數據庫兩種方式存儲用戶收藏數據,也就是說,遊客也可以收藏文章,當然瞭,遊客的收藏數據是通過cookie保存的,如果刪除瞭瀏覽器的cookie,就丟掉瞭收藏數據瞭,所以建議註冊用戶後收藏,就可以保存在數據庫中,不會丟失瞭。
WP Favorite Posts 安裝設置
1.在後臺外掛安裝頁面 搜索 WP Favorite Posts 線上安裝,或者 下載WP Favorite Posts 。
2.啟用以後,在 設置 – Favorite Posts ,可以進行相關設置(看不懂英文的,就使用翻譯工具翻譯吧)
可以設置各種提示語
設置好以後,就可以使用該外掛瞭。
WP Favorite Posts 使用方法
1.“收藏鏈接“的顯示方式
你可以在第一個圖中的界面,選擇自動插入文章頭部或尾部,或者通過在 single.php 或 page.php 的主題文件中使用下面的代碼自定義位置:
1 |
<?php if (function_exists('wpfp_link')) { wpfp_link(); } ?> |
<?php if (function_exists(‘wpfp_link’)) { wpfp_link(); } ?>
如果你隻希望在某些文章中才顯示收藏鏈接,那你可以在編輯文章的時候,添加下面的簡碼到文章中即可:
1 |
[wpfp-link] |
[wpfp-link]
2.小工具調用。你可以在 外觀 – 小工具 看到可用的兩個小工具,自己設置一下即可。
3.添加收藏列表頁面。這個頁面就是用來顯示用戶所有搜藏的文章的頁面,你可以在 頁面 – 新建頁面,然後在內容中添加下面的調用代碼,就可以顯示用戶的收藏列表(每個用戶隻能看到自己的收藏列表)
1 |
[wp-favorite-posts] |
[wp-favorite-posts]
WP Favorite Posts 高級技巧(備用)
下面的是一些高級功能,在論壇看到的,還未測試,記錄一下,方便以後使用。
1.調用文章的收藏次數
最簡單的方法在循環中使用下面的代碼即可直接調用:
1 |
<?php echo wpfp_get_post_meta(get_the_ID()); ?> |
<?php echo wpfp_get_post_meta(get_the_ID()); ?>
如果上面的方法不生效,可以考慮下面的方法:
在主題的 functions.php添加下面的代碼
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function wpfp_get_current_count() { global $wpdb; $current_post = get_the_ID(); $query = "SELECT post_id, meta_value, post_status FROM $wpdb->postmeta"; $query .= " LEFT JOIN $wpdb->posts ON post_id=$wpdb->posts.ID"; $query .= " WHERE post_status='publish' AND meta_key='wpfp_favorites' AND post_id = '".$current_post."'"; $results = $wpdb->get_results($query); if ($results) { foreach ($results as $o): echo $o->meta_value; endforeach; }else {echo( '0' );} } |
function wpfp_get_current_count() {
global $wpdb;
$current_post = get_the_ID();
$query = "SELECT post_id, meta_value, post_status FROM $wpdb->postmeta";
$query .= " LEFT JOIN $wpdb->posts ON post_id=$wpdb->posts.ID";
$query .= " WHERE post_status=’publish’ AND meta_key=’wpfp_favorites’ AND post_id = ‘".$current_post."’";
$results = $wpdb->get_results($query);
if ($results) {
foreach ($results as $o):
echo $o->meta_value;
endforeach;
}else {echo( ‘0’ );}
}
使用下面的代碼調用
1 |
<?php wpfp_get_current_count(); ?> |
<?php wpfp_get_current_count(); ?>
2.收藏列表 的另一種調用方法
如果想通過直接在主題文件中修改顯示收藏列表,可以使用下面的調用函數
1 |
<?php wpfp_list_favorite_posts(); ?> |
<?php wpfp_list_favorite_posts(); ?>
3.獲取某個用戶的收藏數量
該外掛默認使用自帶的 wpfp-page-template.php 文件來顯示收藏列表,如果你要在列表上方顯示收藏數量,可以參考下面的代碼:
1 2 3 4 5 6 |
if ($favorite_post_ids){ $user_favorite_count = count($favorite_post_ids); echo '<p>您已收藏瞭 '.$user_favorite_count.' 篇文章</p>'; }else{ echo '您目前還沒有收藏任何文章!'; } |
if ($favorite_post_ids){
$user_favorite_count = count($favorite_post_ids);
echo ‘<p>您已收藏瞭 ‘.$user_favorite_count.’ 篇文章</p>’;
}else{
echo ‘您目前還沒有收藏任何文章!’;
}
4.刪除文章後統計不準確
網站刪除瞭一些文章,如果用戶之前收藏過這些文章,他們的收藏數據中仍舊包含這些文章的ID,導致他們的收藏數量統計不準確。
找到外掛的 wpfp-page-template.php 文件,按照下圖所示添加代碼:
1 2 3 4 5 6 7 8 9 10 |
/*remove deleted posts cmhello*/ foreach ($favorite_post_ids as $id) { if ( FALSE === get_post_status( $id ) ) { $favorite_post_ids = array_diff($favorite_post_ids, array($id)); $favorite_post_ids = array_values($favorite_post_ids); wpfp_update_user_meta($favorite_post_ids); } } $favorite_post_ids = wpfp_get_user_meta(); /*//remove deleted posts cmhello*/ |
/*remove deleted posts cmhello*/
foreach ($favorite_post_ids as $id) {
if ( FALSE === get_post_status( $id ) ) {
$favorite_post_ids = array_diff($favorite_post_ids, array($id));
$favorite_post_ids = array_values($favorite_post_ids);
wpfp_update_user_meta($favorite_post_ids);
}
}
$favorite_post_ids = wpfp_get_user_meta();
/*//remove deleted posts cmhello*/