Php 带变量的wordpress自定义查询

Php 带变量的wordpress自定义查询,php,mysql,sql,wordpress,variables,Php,Mysql,Sql,Wordpress,Variables,我正试图在wordpress中创建一个显示两位作者的自定义页面。 我有一个自定义查询,因为我需要显示作者图像和个人简历。 我现在的问题是: <?php global $wpdb; $authors = $wpdb->get_results("SELECT ID, user_nicename, meta_value, meta_key, display_name

我正试图在wordpress中创建一个显示两位作者的自定义页面。
我有一个自定义查询,因为我需要显示作者图像和个人简历。 我现在的问题是:

    <?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
        }
    ?>

得到了一些帮助

    $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";
此查询返回用户名的描述,显示作者的描述和照片url。 它还检查了最高数量的描述和照片url,如果这些得到更新,它会得到最新的一个


仍然感谢您的帮助,并为我的英语感到抱歉。

%d代表十进制值,如果我将echo设置为“test”,则将其更改为%s,并且tryStill不工作;在foreach(bios作为bio)内部,它没有显示。请尝试sql查询的回显,这样您就可以看到它进行了什么查询。然后直接在mysqladmin中运行它,查看您得到的结果。看起来你的第一个查询没有返回任何记录。您可以执行
print\r($bios)至chk。它将显示一个带有记录的数组。