【问题标题】:Get Meta Value for all Posts via $wpdb通过 $wpdb 获取所有帖子的元值
【发布时间】:2015-08-22 07:52:15
【问题描述】:

我编写了一个函数,它应该为您提供所有帖子的元键值。我不确定为什么我的查询不起作用。当我var_dump 查询时,它给了我一个空的array 作为输出。元键的值存储在array中,所以我使用unserialize将mysql数组转换为PHP数组。

函数

function wp_postquiz_total_completed_quizes_by_user( ) {

    global $wpdb;

    $mylink = $wpdb->get_results("
                        SELECT $wpdb->postmeta.meta_value * 
                        FROM $wpdb->postmeta 
                        WHERE $wpdb->postmeta.meta_key = '_pq_users_answered_quiz_on_post'",
                        ARRAY_A);


    $array = unserialize($mylink);

    return $array;
}

【问题讨论】:

    标签: php mysql arrays wordpress


    【解决方案1】:

    SELECT 子句中有语法错误:

    SELECT $wpdb->postmeta.meta_value *
    

    看起来您正在尝试选择 meta_value 和“所有内容”,即使 meta_value 包含在 * 中。做一个或另一个:

    SELECT $wpdb->postmeta.meta_value
    

    SELECT *
    

    如果meta_value 是您唯一感兴趣的字段,那么第一个字段就是要走的路。为了将来参考,你可以通过调用得到任何 SQL 错误:

    $wpdb->print_error();
    

    【讨论】:

    • 感谢@mtinsley 的解决方案。最后一个问题,我也不想获得带有元值的帖子 ID。我正在尝试添加LEFT JOIN,但它似乎不起作用。我修改了这个SELECT $wpdb->postmeta.meta_value, $wpdb->postmeta.post_id 并添加了LEFT JOIN $wpdb->postmeta.post_id
    • 帖子 ID 已经在 postmeta 行中。你的意思是你想得到帖子(不仅仅是ID)?如果是这样,您可能希望将WP_Query 与元查询一起使用。如果您遇到困难,请创建另一个问题。
    • 刚刚创建了一个新问题,如果您能帮我解决这个问题,我将非常感谢。谢谢。 Question
    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2022-06-29
    • 2016-09-04
    • 2021-07-08
    • 2014-01-25
    • 2018-01-22
    • 2020-04-09
    相关资源
    最近更新 更多