如何通过访问评论元数据的钩子更改 WordPress 评论输出?
How to change WordPress Comment output via hooks accessing comment meta data?
我希望将一些元数据添加到我的 Woo Commerce 产品评论中。
我的插件显示客户正在评论哪个产品变体,我想将该信息添加到每个客户的评论(评论)中,并带有一个小缩略图 img产品变体也有点花哨。
但我找不到要使用的过滤器/挂钩。
这个我试过了...
add_filter( 'comment_text', function( string $comment_text ) {
$comment_text = '<p>Comment text injection</p>' . $comment_text;
return $comment_text;
});
它有效,但问题是,它没有提供太多上下文...我需要评论 ID,以便获取有关评论的一些元数据。
文档说这个过滤器可以有一个 WP_Comment obj 与过滤器一起传递...但在我的情况下不会发生这种情况。
https://developer.wordpress.org/reference/hooks/comment_text
关于 hooks/filters 的任何建议都可以使用 - 我真的不想开始破解评论模板。
comment_text
过滤器挂钩允许 3 个函数参数(因此您错过了其中的 2 个):
$comment_text
(字符串),主要过滤参数
$comment
(对象),当前WP_Comment
对象实例
$args
(array),参数数组
所以在这个钩子函数中,这里有一个针对订单备注的示例:
add_filter( 'comment_text', 'customizing_comment_text', 20, 3 );
function customizing_comment_text( $comment_text, $comment, $args ) {
if( $comment->comment_type === 'review' ) {
$comment_text = '<p>Comment text injection</p>' . $comment_text;
}
return $comment_text;
}
代码进入您的活动子主题(或活动主题)的 functions.php 文件。测试和工作。
要获取特定评论元数据,您将使用函数 get_comment_meta()
,例如:
$meta_value = get_comment_meta( $comment->comment_ID, 'your_meta_key', true );
要添加特定评论元数据,您将使用函数 add_comment_meta()
,例如:
add_comment_meta( $comment_id, 'your_meta_key', $meta_value, $unique );
我希望将一些元数据添加到我的 Woo Commerce 产品评论中。
我的插件显示客户正在评论哪个产品变体,我想将该信息添加到每个客户的评论(评论)中,并带有一个小缩略图 img产品变体也有点花哨。
但我找不到要使用的过滤器/挂钩。
这个我试过了...
add_filter( 'comment_text', function( string $comment_text ) {
$comment_text = '<p>Comment text injection</p>' . $comment_text;
return $comment_text;
});
它有效,但问题是,它没有提供太多上下文...我需要评论 ID,以便获取有关评论的一些元数据。
文档说这个过滤器可以有一个 WP_Comment obj 与过滤器一起传递...但在我的情况下不会发生这种情况。
https://developer.wordpress.org/reference/hooks/comment_text
关于 hooks/filters 的任何建议都可以使用 - 我真的不想开始破解评论模板。
comment_text
过滤器挂钩允许 3 个函数参数(因此您错过了其中的 2 个):
$comment_text
(字符串),主要过滤参数$comment
(对象),当前WP_Comment
对象实例$args
(array),参数数组
所以在这个钩子函数中,这里有一个针对订单备注的示例:
add_filter( 'comment_text', 'customizing_comment_text', 20, 3 );
function customizing_comment_text( $comment_text, $comment, $args ) {
if( $comment->comment_type === 'review' ) {
$comment_text = '<p>Comment text injection</p>' . $comment_text;
}
return $comment_text;
}
代码进入您的活动子主题(或活动主题)的 functions.php 文件。测试和工作。
要获取特定评论元数据,您将使用函数 get_comment_meta()
,例如:
$meta_value = get_comment_meta( $comment->comment_ID, 'your_meta_key', true );
要添加特定评论元数据,您将使用函数 add_comment_meta()
,例如:
add_comment_meta( $comment_id, 'your_meta_key', $meta_value, $unique );