Buddypress自定义活动循环和查询功能

时间:2015-12-15 01:40:58

标签: php mysql wordpress buddypress

我在个人资料页面添加了一个额外的活动Feed,用于查询链接用户并返回其活动。问题是,我想将此写入函数,因为网站的其他区域通常需要使用相同的查询。

这是用户查询。它只是一个比较查询,用于查找和返回链接用户的ID。

    global $bp, $wpdb;
    $myid = $bp->loggedin_user->id;
    $ourlink = $wpdb->get_var("SELECT meta_value FROM $wpdb->usermeta WHERE meta_key = 'linkid' AND user_id = '$myid'");
    $partnerid = $wpdb->get_var("SELECT user_id from $wpdb->usermeta where meta_key='linkid' AND meta_value = '$ourlink' AND user_id != '$myid'");
    $partner =  '&user_id=' . $partnerid;

然后在活动循环中使用。

<?php if ( bp_has_activities( bp_ajax_querystring( 'activity' ) . $partner ) ) : ?>

但是,将其重写为函数,然后在循环之前调用该函数,虽然它仍将返回ID,但它不再适用于活动循环。

功能:(在WP functions.php文件中)

function sw_partner_id() {

    global $bp, $wpdb;
    $myid = $bp->loggedin_user->id;
    $ourlink = $wpdb->get_var("SELECT meta_value FROM $wpdb->usermeta WHERE meta_key = 'linkid' AND user_id = '$myid'");
    $partnerid = $wpdb->get_var("SELECT user_id from $wpdb->usermeta where meta_key='linkid' AND meta_value = '$ourlink' AND user_id != '$myid'");
    $partner =  '&user_id=' . $partnerid;

    return $partner;
}

在活动循环之前调用该函数

<?php sw_partner_id(); ?>
<?php if ( bp_has_activities( bp_ajax_querystring( 'activity' ) . $partner ) ) : ?>

错误更新: enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

如果你想在你的functions.php文件中调用一个函数,请使用hooks.Please注意代码中的 global bp ,因为你忘记添加$符号。

示例:

function sw_partner_id() {

    global $bp, $wpdb;
    $myid = $bp->loggedin_user->id;
    $ourlink = $wpdb->get_var("SELECT meta_value FROM $wpdb->usermeta WHERE meta_key = 'linkid' AND user_id = '$myid'");
    $partnerid = $wpdb->get_var("SELECT user_id from $wpdb->usermeta where meta_key='linkid' AND meta_value = '$ourlink' AND user_id != '$myid'");
    $partner =  '&user_id=' . $partnerid;

        return $partner;
    }
//sample hook
add_action('admin_init','sw_partner_id');

之后尝试调用该函数。 我希望有所帮助。