Wordpress PHP - 如果用户不是朋友,则隐藏帖子

时间:2015-12-28 22:24:24

标签: php wordpress

所以我使用的是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' );吗?

1 个答案:

答案 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 ...
}