1

我有一个简单的 pod,它带有一个名为 features 的布尔值。我正在尝试使用该find()方法(使用pods()快捷方式)列出所有在页面模板上将特色布尔值设置为 true 的 pod 条目,但我无法让它工作。我找到了这个答案,但它适用于旧版本,似乎不适用于 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正确地加入/在哪里,但我不太清楚如何使用查找参数来做到这一点。它应该是'case_study'.'meta_key'='has_page'其他问题之一。我尝试使用是/否选项使该字段成为简单的关系,但仍然没有运气。

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

4

3 回答 3

4

If your relationship field is named 'has_page' and it's a simple (custom) then you'll want to use this:

has_field.meta_value = 1
于 2013-03-22T18:51:52.287 回答
2

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

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

非常感谢斯科特的快速和出色的帮助!

于 2013-03-22T20:43:40.090 回答
1

最终解决方案:

我最初的内容类型是 post 的扩展,它似乎不能很好地与关系字段(至少是基本字段)配合使用,因为它似乎假设他们生成自己的表格,而他们并不总是这样做。在这种情况下,由于它是一个简单的自定义关系,数据都存储在wp_postmeta表中。

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

于 2013-03-22T22:14:24.287 回答