Wordpress Pods:在布尔字段上查找

时间:2013-03-22 17:21:37

标签: mysql wordpress podscms

我有一个简单的pod,其中包含一个名为features的布尔值。我正在尝试使用find()方法(使用pods()快捷方式)列出在页面模板上将特色布尔值设置为true的所有pod条目,但我无法使其工作。我找到了this answer,但它是旧版本,但似乎不适用于Pods 2.0。如果有更简单的方法,请告诉我我正在尝试这样的事情:

$params = array(
    'orderby' => 'date DESC',
    'where' => 'case_study.has_page = 1',
    'limit' => -1
);
$pods = pods( 'case-study', $params );

我收到的错误是:

WordPress database error: [Unknown column 'case_study.has_page' in 'where clause']
SELECT DISTINCT 't'.* FROM 'wp_posts' AS 't' LEFT JOIN 'wp_postmeta' AS 'case_study' ON 'case_study'.'meta_key' = 'case_study' AND 'case_study'.'post_id' = 't'.'id' WHERE 'case_study'.'has_page' = 1 AND 't'.'post_type' = "case_study" ORDER BY 't'.'date' DESC, 't'.'menu_order', 't'.'post_title', 't'.'post_date'

Database Error; SQL: SELECT DISTINCT 't'.* FROM 'wp_posts' AS 't' LEFT JOIN 'wp_postmeta' AS 'case_study' ON 'case_study'.'meta_key' = 'case_study' AND 'case_study'.'post_id' = 't'.'id' WHERE 'case_study'.'has_page' = 1 AND 't'.'post_type' = "case_study" ORDER BY 't'.'date' DESC, 't'.'menu_order', 't'.'post_title', 't'.'post_date'; Response: Unknown column 'case_study.has_page' in 'where clause'

看起来它并没有正确地加入/关注wp_postmeta,但我无法弄清楚如何使用find params这样做。它应该是'case_study'.'meta_key'='has_page'等问题。我试过让这个领域与Yes / No选项建立一个简单的关系,但仍然没有运气。

感谢您提供的任何帮助!非常感谢。

3 个答案:

答案 0 :(得分:3)

如果你的关系字段名为'has_page'并且它是一个简单的(自定义),那么你将要使用它:

has_field.meta_value = 1

答案 1 :(得分:2)

发现它!在编辑pod时,我进入了“高级”设置选项卡,在“功能类型”下,我从“帖子”中将其设置为“自定义”。瞧,它现在有效!我想这个设置告诉find调用如何操作表。我的最终发现参数如下:

$params = array(
    'orderby' => 'date DESC',
    'where' => 'has_page.meta_value = 1',
    'limit'   => -1
);
$casestudies = pods( 'case_study', $params );

非常感谢斯科特快速而且非常棒的帮助!

答案 2 :(得分:1)

最终解决方案:

我的原始内容类型是帖子的扩展,它似乎不能很好地与关系字段,至少是基本字段,因为它似乎假设他们生成自己的表,他们并不总是这样做。在这种情况下,因为它是一个简单的自定义关系,所以数据都存储在wp_postmeta表中。

我找到的最佳解决方案是将我的pod重建为高级内容类型。通过这种方式,pod可以生成一个独立的表,因此可以使用简单的'where' => 'has_page' = 1而不是所有关系复杂度来检查布尔值。谢谢你的帮助斯科特。