在WordPress中,有没有使用自定义MySQL表而不使用任何插件来创建Like/Favorite功能的最佳实践?

时间:2017-01-15 作者:Raja

我正在建立自己的简单WordPress社区网站,我想在自定义帖子类型上包含一个简单的like按钮。我不想使用任何插件,因为我想要完全控制,我这样做也是为了学习体验。

我希望按钮出现在每篇文章以及文章存档页面上。如果用户已登录并喜欢帖子,则“喜欢”按钮将更改状态以向用户显示他们已单击的内容。还将有一个页面显示每个用户喜欢的所有帖子。我可以处理JS和CSS部分。

我实现此功能的解决方案是在WordPress中创建一个名为“wp\\u likes”的新表,如下所示。它将记录所有喜欢任何自定义帖子的用户。

+----+----------------+---------+
| ID | Custom Post ID | User ID |
+----+----------------+---------+
|  1 |             12 |       1 |
|  2 |             13 |       1 |
+----+----------------+---------+
还有一个汇总表wp\\u likes\\u summary。这将允许我有效地显示每个自定义帖子上的赞总数,而无需编写查询来统计每一行。

+----+----------------+-------+
| ID | Custom Post ID | Likes |
+----+----------------+-------+
|  1 |             12 |    89 |
|  2 |             13 |    12 |
+----+----------------+-------+
使用这种方法是否有任何危险?我不想弄乱WP核心表。我相信,即使有成千上万的人喜欢,这种方法也是可以扩展的。将喜欢的内容存储在WP核心表(posts)中,并添加一个包含喜欢自定义post的用户数组的新列是否更好?在core posts表中添加另一列是否是一个好主意?

我真的很感谢你抽出时间,因为我正在努力提前思考,以避免路上的麻烦。谢谢

1 个回复
最合适的回答,由SO网友:Samuel Asor 整理而成

使用WordPresswp_postmeta 将对您有很大帮助,而不是创建新表。功能如下get_post_meta(), update_post_meta(), add_post_meta() 等,可随时使用。

您只需创建meta_key (在这种情况下wp_likes) 以及meta_value (将存储喜欢的数量),可以使用get_post_meta().

您可以查看以下链接以获取参考:

add_post_meta

get_post_meta

update_post_meta

delete_post_meta

相关推荐

如何读取WordPress$Query关联数组(散列)键的值

WordPress编程新手(来自更为传统的环境),并试图了解其一些“独特”特性。我们的网站上有一个目录页,此代码驻留在functions.php, 如果条件为true,则调整结果。if( $query->is_post_type_archive( \'directory\' ) ){ ...//do stuff } 我想知道如何获取is_post_type_archive 这就是“目录”当我对值使用测试时。。。var_dumb($query->is_post