通过 $wpdb 获取所有帖子的元值
Posted
技术标签:
【中文标题】通过 $wpdb 获取所有帖子的元值【英文标题】:Get Meta Value for all Posts via $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;
【问题讨论】:
【参考方案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以上是关于通过 $wpdb 获取所有帖子的元值的主要内容,如果未能解决你的问题,请参考以下文章