我试图在wordpress中创建一个显示2位作者的自定义页面 我有一个自定义查询,因为我需要显示作者图像和生物。 我现在的疑问是:
<?php
global $wpdb;
$authors = $wpdb->get_results("SELECT ID, user_nicename, meta_value, meta_key, display_name
FROM $wpdb->users, $wpdb->usermeta
WHERE user_nicename = 'nick' AND umeta_id = 53");
foreach($authors as $author) {
?>
<div class="author">
<div class="authorimage" style="background-image: url('<?php echo $author->meta_value; ?>');" >
</div>
<div class="authorinfo">
<?php
$username = $author->user_nicename;
echo $author->display_name; ?><br /><?php
$bios = $wpdb->get_results("SELECT ID, user_nicename, meta_value, meta_key, display_name
FROM $wpdb->users, $wpdb->usermeta
WHERE user_nicename = %d
AND umeta_id = 43", $username);
foreach($bios as $bio) {
echo $bio->meta_value;
}
?>
</div>
</div>
<?php
}
?>
我使用了2个查询,因为我无法弄清楚如何在一个结果中获得2个元值
一切都很好,但在第二个查询中WHERE user_nicename= %d
无法正常工作
它在echo $bio->metavalue
中没有显示任何内容
但是,如果我硬编码WHERE user_nicename = "andre"
它的工作原理
答案 0 :(得分:0)
得到了一些帮助。
$users = "('nick', 'roy')";
global $wpdb;
$tableB2 = "SELECT user_id, max(umeta_id) maxid
FROM art_usermeta b
WHERE meta_key = 'author_profile_picture'
GROUP BY user_id";
$tableB1 = "SELECT a.user_id, maxid, meta_value, meta_key
FROM ($tableB2) a
INNER JOIN art_usermeta b on b.user_id=a.user_id and b.umeta_id=maxid and meta_key='author_profile_picture'";
$tableC2 = "SELECT user_id, max(umeta_id) maxid
FROM art_usermeta b
WHERE meta_key = 'description'
GROUP BY user_id";
$tableC1 = "SELECT a.user_id, maxid, meta_value, meta_key
FROM ($tableC2) a
INNER JOIN art_usermeta c on c.user_id=c.user_id and c.umeta_id=maxid and meta_key='description'";
$sql = "SELECT ID, user_nicename, b.meta_value bvalue, b.meta_key bkey, display_name, c.meta_value cvalue, c.meta_key ckey
FROM art_users a
INNER JOIN ($tableB1) b ON b.user_id=id AND b.meta_key = 'author_profile_picture'
INNER JOIN ($tableC1) c ON c.user_id=id AND c.meta_key = 'description'
WHERE user_nicename in $users";
此查询返回user_nicename的描述,display_name描述作者和照片网址。 它还检查最高数量的描述和照片网址,如果这些更新,它将获得最新的描述和照片网址。
还是谢谢你的帮助,对不起我的英语。