WordPress文章收藏插件:WP Favorite Posts

雪花徐徐飘下,如芦花,似柳絮,像轻悠悠的鹅毛,无尽无休地飘着,飘着,宛如那美丽的银蝶在院中翩翩起舞,又像一群穿白纱裙的小舞女,伴着天空传来的仙乐,轻轻盈盈地在空中飘舞着,旋转着,跳着动人的舞蹈。那么轻快的身影,那么飘逸的舞姿,每一片晶莹的雪花都像一曲婉转、悠扬、清新的轻音乐,都仿佛是一首轻快、和谐、明丽的小诗。哦,神奇的小雪花……

倡萌最近一直在考虑 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*/

以上就是WordPress文章收藏插件:WP Favorite Posts。对员工忠诚,员工反过来就会对你忠诚;对员工负责,员工反过来就会对你负责。更多关于WordPress文章收藏插件:WP Favorite Posts请关注haodaima.com其它相关文章!

标签: WP WordPress