仅显示好友的帖子

时间:2015-12-28 作者:dwinnbrown

因此,我正在使用WPMU-Dev-friends插件,该插件为WP成员添加了搜索朋友和添加新朋友等功能。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 个回复
最合适的回答,由SO网友:Kyle K 整理而成

不确定您是否仍在寻找答案,因为自提出此问题以来已经有7个多月了,但我希望完成同样的事情,并且使用您上面突出显示的函数,我想出了下面的代码,当将其放置在循环中时,效果非常好。

首先,如果尚未声明全局$current\\u用户:

<?php global $current_user; wp_get_current_user(); ?>
然后,在使用任何必要的条件创建$args以获取帖子之后,在循环内部,将帖子的输出包装在简单的if检查中:

<?php while (have_posts()) : the_post();
// declaring $post_author on each post to check if the post\'s author is friends with the current user, and if so, displays the post. 
$post_author = get_the_author_meta( \'ID\' );
$current_user_friends = friends_check_status($current_user->ID, $post_author);

if($current_user_friends):
?>

// ... all of your HTML and PHP calls to post fields here

<?php endif; 
endwhile; ?>
这将隐藏当前用户与帖子作者不是朋友的任何帖子。这样做的唯一缺点是,在拉取帖子之前不会进行检查,因此如果您希望显示10篇帖子,但用户对拉取的10篇帖子不是朋友,那么他们会看到0。在为输出创建帖子数组之前,肯定需要想出一种方法来运行检查,以确保用户获得尽可能多的帖子来显示。。。

相关推荐

如何将Java脚本添加到Custom-Page.php模板?

如何将javascript添加到自定义页面。php模板?如何使从w3schools ajax教程获得的以下javascript在自定义页面上工作。php模板?任何帮助都将不胜感激。工作javascript包含在以下HTML中:<!DOCTYPE html> <html> <style> table,th,td { border : 1px solid black; border-collapse: collapse;&#x