寻求可对列表行实现上下投票的WordPress插件
适合你需求的WordPress投票方案推荐
Hey Mark, 针对你想在列表页直接给Formidable Forms条目加上下投票的需求,我整理了几个实用的方案,不用让用户跳转到单独文章页就能实现:
一、现成插件适配方案
这些插件可以通过简单配置或小代码适配Formidable的条目列表:
WP-PostRatings:这个插件默认是给文章加评分,但可以通过钩子适配Formidable条目。
- 安装激活后,找到你用来展示条目列表的模板(可以是Formidable的自定义视图,或者自己写的页面模板)。
- 在每条条目对应的位置,添加代码
<?php the_ratings('', $entry_id); ?>,其中$entry_id是当前Formidable条目的ID(Formidable视图里可以用[id]短代码获取)。 - 再加一段小代码到主题的
functions.php,让插件识别Formidable条目ID:add_filter('wp_postratings_get_postid', 'frm_ratings_use_entry_id', 10, 1); function frm_ratings_use_entry_id($post_id) { global $frm_entry; if (isset($frm_entry->id)) { return $frm_entry->id; } return $post_id; }
这样就能在列表页直接显示投票按钮,分页用Formidable自带的分页设置就行(比如设置每页25条)。
Vote It Up:这款插件支持自定义内容类型,而Formidable的条目本质是
frm_item这个自定义帖子类型。- 安装后进入插件设置,找到“Supported Post Types”选项,勾选
frm_item。 - 在条目列表模板里,调用投票函数:
<?php voteitup_display($entry_id); ?>(同样用Formidable的[id]短代码替换$entry_id)。 - 它自带防重复投票功能,分页直接用Formidable的分页配置即可。
- 安装后进入插件设置,找到“Supported Post Types”选项,勾选
Simple Vote:轻量级的投票插件,支持短代码调用,适配起来更灵活。
在Formidable的条目视图里,每条条目末尾添加短代码[simple_vote id="[id]" type="updown"],就能直接显示上下投票按钮,插件会自动处理投票计数和防重复,分页同样依赖Formidable的分页设置。
二、自定义开发方案(如果不想用插件)
如果插件适配不符合预期,也可以自己写个简单的投票功能:
- 存储投票数据:可以给Formidable的条目表(
wp_frm_items)新增up_votes和down_votes两个字段,或者用WordPress的自定义字段功能存储每个条目的投票数。 - 添加投票按钮:在条目列表模板里,给每条条目添加两个按钮,比如:
<button class="vote-btn" data-entry-id="[id]" data-type="up">👍</button> <button class="vote-btn" data-entry-id="[id]" data-type="down">👎</button> <span class="vote-count">赞:[meta key='up_votes'] | 踩:[meta key='down_votes']</span> - AJAX处理投票:写一段JS和PHP的AJAX逻辑,点击按钮时发送请求,验证用户(用cookie防止未登录用户重复投票,登录用户用ID验证),更新数据库里的投票数,然后返回最新票数更新页面。
- 分页实现:用Formidable的视图分页功能,或者自己用
WP_Query查询frm_item类型的条目,设置posts_per_page=25来实现分页。
不管用哪种方案,都能实现你要的“列表页直接投票+分页浏览”的需求,推荐先试试插件方案,更快上手~
内容的提问来源于stack exchange,提问作者markh
相关产品推荐
相关产品推荐

