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

2022-12-17

以前发过很多关于 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. 
    
  4. 	add_meta_box(
  5. 		'rudr_comment',
  6. 		'Comment Settings',
  7. 		'rudr_comment_meta_box_cb',
  8. 		'comment', // instead of a post type parameter
  9. 		'normal'
  10. 	);
  11. 
    
  12. }
  13. 
    
  14. function rudr_comment_meta_box_cb() {
  15. 	echo 'Hi!';
  16. }

下面使用 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. 
    
  4. 	if( 'comment' !== $type ) {
  5. 		return;
  6. 	}

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

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

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

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

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

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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

免责声明 1、本站所发布的全部内容源于互联网搬运(包括源代码、软件、学习资料等),本站提供的一切源码、软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。您必须在下载后的23个小时之内,从您的电脑或手机中彻底删除上述内容。
2、访问本站的用户必须明白,本站信息来自网络收集整理,版权争议与本站无关,本站对所提供下载的软件和程序代码不拥有任何权利,其版权归该软件和程序代码的合法拥有者所有,如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如本站不慎侵犯您的版权请联系我们,我们将及时处理,并撤下相关内容!敬请谅解! 侵删请致信E-mail:messi0808@qq.com
3、如下载的压缩包需要解压密码,若无特殊说明,那么文件的解压密码则为www.xmy7.com
4、如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

小蚂蚁资源网 cms教程 WordPress 主题如何给评论添加自定义字段 https://www.xmy7.com/zh/cms/25502.html

相关文章