我要做的是在Wordpress中为当前登录的用户查询一个自定义字段并求和。
我有一个我的写作公司的网站,让作家登录并声称他们想做的工作。对于每个作业,有一个名为“字数统计”的字段,我在其中输入需要完成的文章的字数统计。为了计算每个作者在一次作业中欠多少钱,我使用word count字段(带有元键"assignment_word_count“),并将其乘以每个作者按单词支付的统一费率。
到目前为止,我放在一起做我想做的事情的最接近的脚本是SQL脚本。不幸的是,它对所有字数统计字段求和,而不是只计算属于当前用户的字段的总和。如果我尝试向代码中添加任何内容以将其限制为当前用户,则总数将降为零。
<?php
$now = current_time('mysql');
$sql = "SELECT ";
$sql .= "meta_value FROM $wpdb->posts AS posts, $wpdb->postmeta AS postmeta ";
$sql .= "WHERE posts.ID = postmeta.post_id AND postmeta.meta_key = 'assignment_word_count' ";
$sql .= "AND posts.post_status = 'paid' ";
$sql .= "AND posts.post_date < '$now' ";
$sql .= "AND postmeta.meta_value != '' ";
$results = array(); $values = array();
$results = $wpdb->get_results($sql);
$totalpay = 0;
if (!empty($results)){
foreach ($results as $result) {
$totalpay += $result->meta_value;
}
}
echo 'Total Paid: $' . $totalpay * money_format('0.0040=(#10.2n', $number);
?>
我还发现了另一个脚本,它应该能做我正在寻找的事情,但它告诉我,内爆行是一个无效的参数。
<?php
//get current user
global $current_user;
get_currentuserinfo();
// build query of ids by user
$userPosts = get_posts(array('author' => $current_user->ID, 'post_type'=> 'assignments')); //change this
// loop to create array of ids by user
foreach ($userPosts as $post) {
setup_postdata($post);
$ids[] = get_the_ID();
}
$idList = implode(",", $ids); //tun this crap into a list
$meta_key = 'assignment_word_count';//set this to your custom field meta key
$totalpay = $wpdb->get_col($wpdb->prepare("
SELECT meta_value
FROM $wpdb->postmeta
WHERE meta_key = %s
AND post_id in (" . $idList . ")", $meta_key));
echo 'Total pay: $ ' . array_sum( $totalpay); ?>
发布于 2014-12-26 20:30:23
首先,您应该尝试使用硬编码的用户id来修复查询,然后,再尝试如何传递当前用户。
在查询中,右边的字段名称是post_author,而不是author。
发布于 2014-12-26 20:46:13
http://codex.wordpress.org/Function_Reference/wp_get_current_user使用此函数并获取currenet用户id
然后
if(currentuserid=="meabox_user")
{
display the metaboxes
.........
}
https://stackoverflow.com/questions/27627201
复制相似问题