EntityFieldQuery display pager で説明されているように、theme('pager')
の使用方法を理解するのに問題があります。
私はそれを動作させることができません(ページャーと結果のページへのリンクを表示)。
EntityFieldQuery
のpager(10)
は自動的にページャーを呼び出しますか? print(theme('pager'))
で表示する必要がありますか?
この機能はDrupalコア(7.15)に含まれていますか?
Template.phpでクエリを実行し、変数を介してクエリ結果をarticle.tpl.phpに挿入しています。
回避策として、2つのクエリを実行することを考えています。1つは条件を満たすノードの数を調べ、番号付きのリンクを出力し、それらのリンクに変数をアタッチし、別のクエリで変数を読み取り、結果のノードを選択しますrange($i,$j)
を使用します。
EntityFieldQuery
のpager(10)
は自動的にページャーを呼び出しますか?
はい; PagerDefault
クラスから新しいデルタを取得することにより、単一ページ上の複数のページャーが競合するという通常の問題も回避します。
print(theme('pager'))
で表示する必要がありますか?
はい(ただし、表示する結果が2ページ分以上ある場合に限ります)。
この機能はDrupalコア(7.15)に含まれていますか?
はい。
これは私にとっては完璧に機能します:
_$query = new EntityFieldQuery;
$query->entityCondition('entity_type', 'node')
->pager(10);
$results = $query->execute();
$nodes = node_load_multiple(array_keys($results['node']));
$build = array(
'nodes' => node_view_multiple($nodes),
'pager' => array(
'#theme' => 'pager',
)
);
_
これはメニューコールバック関数から返されるため、drupal_render()
を介して渡されます。その場合、ノードティーザーのリストが、予想されるページャーの真下に表示されます。
同じ例がうまくいかない場合は、インストールに問題があるか、カスタム/コントリビュートモジュールにコアページャーシステムと競合しているものがあるはずです。