我有一个简单的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选项建立一个简单的关系,但仍然没有运气。
感谢您提供的任何帮助!非常感谢。
答案 0 :(得分:3)
如果你的关系字段名为'has_page'并且它是一个简单的(自定义),那么你将要使用它:
has_field.meta_value = 1
答案 1 :(得分:2)
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
而不是所有关系复杂度来检查布尔值。谢谢你的帮助斯科特。