如何做好注册用户体验。考虑添加一个文章收藏的功能,让大家收藏自己喜欢的文章,然后在一个页面生成列表,并且在侧边栏显示最近收藏的文章,这样一来,大家以后就可以很方便找到自己需要的文章。于是找到了 WP Favorite Posts 这个WordPress文章收藏插件,试了一下,感觉不错。WP Favorite Posts 是一个不错的WordPress文章收藏插件,可以在文章页面中添加收藏按钮,用户可以点击收藏自己的文章,并且可以在专门的页面中显示自己收藏的文章,还支持“最近收藏的文章(每个人看到自己的)”“全站收藏次数最多的文章”这两个小工具。最值得一提的 WP Favorite Posts 通过浏览器cookie和数据库两种方式存储用户收藏数据,也就是说,游客也可以收藏文章,当然了,游客的收藏数据是通过cookie保存的,如果删除了浏览器的cookie,就丢掉了收藏数据了,所以建议注册用户后收藏,就可以保存在数据库中,不会丢失了。
1.在后台插件安装页面 搜索 WP Favorite Posts 在线安装,或者 下载WP Favorite Posts 。
2.启用以后,在 设置 – Favorite Posts ,可以进行相关设置(看不懂英文的,就使用翻译工具翻译吧)可以设置各种提示语设置好以后,就可以使用该插件了。
1.“收藏链接“的显示方式你可以在第一个图中的界面,选择自动插入文章头部或尾部,或者通过在 single.php 或 page.php 的主题文件中使用下面的代码自定义位置:
<?php if (function_exists('wpfp_link')) { wpfp_link(); } ?>
如果你只希望在某些文章中才显示收藏链接,那你可以在编辑文章的时候,添加下面的简码到文章中即可:[wpfp-link]
2.小工具调用。你可以在 外观 – 小工具 看到可用的两个小工具,自己设置一下即可。
3.添加收藏列表页面。这个页面就是用来显示用户所有搜藏的文章的页面,你可以在 页面 – 新建页面,然后在内容中添加下面的调用代码,就可以显示用户的收藏列表(每个用户只能看到自己的收藏列表)[wp-favorite-posts]下面的是一些高级功能,倡萌在论坛看到的,还未测试,记录一下,方便以后使用。最简单的方法在循环中使用下面的代码即可直接调用:
<?php echo wpfp_get_post_meta(get_the_ID()); ?>
如果上面的方法不生效,可以考虑下面的方法:在主题的 functions.php添加下面的代码
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' );}}
使用下面的代码调用<?php wpfp_get_current_count(); ?>如果想通过直接在主题文件中修改显示收藏列表,可以使用下面的调用函数<?php wpfp_list_favorite_posts(); ?>该插件默认使用自带的 wpfp-page-template.php 文件来显示收藏列表,如果你要在列表上方显示收藏数量,可以参考下面的代码:
if ($favorite_post_ids){ $user_favorite_count = count($favorite_post_ids); echo '<p>您已收藏了 '.$user_favorite_count.' 篇文章</p>'; }else{ echo '您目前还没有收藏任何文章!'; }
网站删除了一些文章,如果用户之前收藏过这些文章,他们的收藏数据中仍旧包含这些文章的ID,导致他们的收藏数量统计不准确。找到插件的 wpfp-page-template.php 文件,按照下图所示添加代码:
/*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*/
一日程新手WP建站指南(https://www.yiricheng.cn/),为广大编程爱好者提供零基础快速搭建博客网站的方法,分享计算机网络、HTML、CSS、JavaScript、PHP、响应式设计以及Python自动化办公的博客文章,另有各类小工具、电子书、免费教程。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。