例如,我有5个用户,我想授予他们评论的权限,但没有其他人。
但每个人都需要能够阅读它们。(可公开查看)
就像一个关于一个有5名演员的节目的博客,我只希望他们能够在这个特定的页面上发表评论。这是一个自定义页面模板。
我想我可以使用这个动作钩,但我无法通过搜索找到任何示例。
768 *
769 * @param int $post_id An optional post ID to check instead of the current post.
770 * @return bool True if the comments are open
771 */
772 function comments_open( $post_id = null ) {
773
774 $_post = get_post($post_id);
775
776 $open = ( \'open\' == $_post->comment_status );
777 return apply_filters( \'comments_open\', $open, $post_id );
它会像这个伪代码一样简单吗?
if my_user_can_post_comments = true {
add_filter(\'comments_open\', true, $ID);
} else {
add_filter(\'comments_open\', false, $ID);
}
SO网友:Brooke.
如果你知道允许发表评论的用户的ID,我不明白你为什么不能这样做。
$current_user = wp_get_current_user(); //get data of logged in user
$user_ID = $current_user->ID; //current users id
$allowed_users = array(3,6,9,10,33); //array of users who are allowed to comment
if(in_array($user_ID, $allowed_users)) {
add_filter(\'comments_open\', true, $ID);
} else {
add_filter(\'comments_open\', false, $ID);
}
老实说,我不确定过滤代码本身是否可以工作。如果你提供更多的细节,也许我可以肯定地告诉你。然而,逻辑是好的,希望能让你走上正确的轨道。它基本上只使用PHP的
in_array 并对照登录的用户ID检查允许ID的阵列。
您还可以包装comment_form();