Notice: Trying to access array offset on value of type bool in /www/wwwroot/weimahe.com/wp-content/advanced-cache.php on line 472

Notice: Trying to access array offset on value of type bool in /www/wwwroot/weimahe.com/wp-content/advanced-cache.php on line 472
WordPress 主题如何给评论添加自定义字段 - 微码盒
!
也想出现在这里? 联系我们
广告位

WordPress 主题如何给评论添加自定义字段

以前发过很多关于 WordPress 自定义字段的教程,比如 WordPress 批量编辑自定义字段,WordPress 后台新增字段面板实现自定义外链缩略图等等,今天说说如何将自定义字段添加到评论。但有时,wordpress 评论表单只提供四个默认的字段,分别为昵称、邮箱、网址和评论内容,只能满足一般的博客网站需求,如果想增加评论字段该怎么做?那么我们就具体看一看。

将这些代码添加到当前的主题 functions.php 文件或自定义插件中。

  1. add_action( 'add_meta_boxes_comment', 'rudr_comment_meta_box' );
  2. function rudr_comment_meta_box( $comment ) { // WP_Comment object
  3. add_meta_box(
  4. 'rudr_comment',
  5. 'Comment Settings',
  6. 'rudr_comment_meta_box_cb',
  7. 'comment', // instead of a post type parameter
  8. 'normal'
  9. );
  10. }
  11. function rudr_comment_meta_box_cb() {
  12. echo 'Hi!';
  13. }

下面使用 add_meta_box()了函数。add_meta_boxes_comment 但是你也可以 add_meta_boxes 顺便使用过滤器钩子。

  1. add_action( 'add_meta_boxes', 'rudr_comment_meta_box', 25, 2 );
  2. function rudr_comment_meta_box( $type, $comment ) {
  3. if( 'comment' !== $type ) {
  4. return;
  5. }

将上面的 rudr_comment_meta_box_cb 函数内容改成下面的代码

  1. <?php
  2. function rudr_comment_meta_box_cb( $comment ) {
  3. $comment_rating = get_comment_meta( $comment->comment_ID, 'comment_rating', true );
  4. wp_nonce_field( 'rudr_comment_update', 'comment_nonce' );
  5. ?>
  6. <table class="form-table">
  7. <tr>
  8. <th><label for="comment_rating">Rating</label></th>
  9. <td>
  10. <select id="comment_rating" name="comment_rating">
  11. <option value="">Please choose…</option>
  12. <?php
  13. for( $i = 1; $i <=5; $i++ ) {
  14. echo "<option value=\"$i\"" . selected( $i, $comment_rating, true ) . ">$i</option>";
  15. }
  16. ?>
  17. </select>
  18. </td>
  19. </tr>
  20. </table>
  21. <?php
  22. }

我在这里没有使用任何转义函数,因为我们可以信任 WordPress selected()函数,而这实际上是我们使用从数据库中获取的数据的唯一地方。

  1. add_action( 'edit_comment', 'rudr_save_comment' );
  2. function rudr_save_comment( $comment_id ) {
  3. if( ! isset( $_POST[ 'comment_nonce' ] ) || ! wp_verify_nonce( $_POST[ 'comment_nonce' ], 'rudr_comment_update' ) ) {
  4. return;
  5. }
  6. update_comment_meta(
  7. $comment_id,
  8. 'comment_rating',
  9. absint( $_POST[ 'comment_rating' ] )
  10. );
  11. }

只要我们的自定义字段中只有 1 到 5 个值,我们就可以轻松地使用 absint()函数进行清理。

使用 get_comment_meta()可以任何位置获取该自定义字段值。

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

WordPress如何添加无刷新AJAX点赞功能

2022-11-18 17:10:08

WordPress教程

给WordPress评论框加个上传图片功能

2022-11-18 18:08:57

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索