所以我使用的是wordpress插件,它为我的网站增加了一些功能,让用户可以添加新朋友等。在PHP文件中定义了一个特定的功能,可以让你检查用户是否是朋友。这个函数的代码在这里:
/**
* Utility function to determine is a user is friends with another user.
*
* @since 1.2.3
*
* @param
* tmp_uid - int - Current user ID
* tmp_friend_uid - int - Friend user ID
* @return returns the value of 'friend_approved' field. 1 - Approved, 0 - Pending, null - no status
*/
function friends_check_status($tmp_uid, $tmp_friend_uid) {
global $wpdb;
$sql = $wpdb->prepare("SELECT friend_approved FROM " . $wpdb->base_prefix
. "friends WHERE user_ID = %d AND friend_user_ID = %d", $tmp_uid, $tmp_friend_uid);
//echo "sql=[". $sql ."]<br />";
return $wpdb->get_var($sql);
}
我想运行此功能来检查author_id
以检查帖子作者和用户是否是朋友。如果他们是朋友,他们应该能够查看帖子,如果他们不是作者的朋友,则应隐藏帖子。我可以简单地用tmp_friend_uid
代替the_author_meta( 'ID' );
吗?
答案 0 :(得分:0)
是的,你可以复制/修改这个功能(比如说你的主题函数.php文件) - 不要修改插件文件 - 更新会擦除你的更改。
所以,在你的主题的functions.php文件中,把它放在这些修改中:
function friends_post_author_status($tmp_uid) {
global $wpdb, $post;
$post_author_id = $post->post_author;
$sql = $wpdb->prepare("SELECT friend_approved FROM " . $wpdb->base_prefix
. "friends WHERE user_ID = %d AND friend_user_ID = %d", $tmp_uid, $post_author_id);
//echo "sql=[". $sql ."]<br />";
return $wpdb->get_var($sql);
}
然后,在循环中,您可以访问此功能并检测帖子作者是否是朋友:
$user_ID = get_current_user_id();
$is_friend = friends_post_author_status($user_ID);
if ( $is_friend ) {
// ... do stuff ...
}