我在个人资料页面添加了一个额外的活动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 ) ) : ?>
答案 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');
之后尝试调用该函数。 我希望有所帮助。