1

私は、featuredと呼ばれるブール値を持つ単純なポッドを持っています。find()このメソッドを(ショートカットを使用して)使用して、ページテンプレートで注目のブール値がtrueに設定されているすべてのポッドエントリを一覧表示しようとして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'

正しくJOINing/WHEREingしていないようですが、findparamswp_postmetaを使用してこれを行う方法を完全に理解することはできません。'case_study'.'meta_key'='has_page'それは他の問題の中にあるはずです。はい/いいえオプションを使用してフィールドを単純な関係にしようとしましたが、それでも運がありません。

あなたが提供できるどんな助けにも感謝します!大変感謝しております。

4

3 に答える 3

4

関係フィールドの名前が「has_page」で、単純な(カスタム)場合は、次のように使用します。

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

それを見つけた!ポッドを編集するときは、[詳細設定]タブに移動し、[機能の種類]で[投稿]から[カスタム]に設定しました。出来上がり、動作します!この設定は、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

最終的解決:

私の元のコンテンツタイプは投稿の拡張でしたが、関係フィールド、少なくとも基本的なフィールドではうまく機能しないようです。これは、常に実行するとは限らない独自のテーブルを生成することを前提としているためです。この場合のように、それは単純なカスタム関係であったため、データはすべてwp_postmetaテーブルに格納されました。

私が見つけた最善の解決策は、ポッドを高度なコンテンツタイプとして再構築することでした。このように、ポッドはすべて独自のテーブルを生成するため、ブール値のチェック'where' => 'has_page' = 1は、すべての関係の複雑さではなく、単純な方法で実行できます。スコットの助けに感謝します。

于 2013-03-22T22:14:24.287 に答える