EntityFieldQuery
オブジェクトを使用する次のコードがあります。
_$query = new EntityFieldQuery;
$query
->entityCondition('entity_type', 'node')
->entityCondition('bundle', 'yacht')
->propertyCondition("status", 1)
->pager(3, 1);
// […] switch case defaulting to:
$query->fieldOrderBy("field_bautyp", 'value', "asc");
// […]
$query->execute();
$nodes = node_load_multiple(array_keys($result['node']));
return theme('yacht_display', array('nodes' => $nodes));
_
そして、yacht_display.tpl.php
_<some HTML-Code and iteration over the $nodes>
<?php var_dump(theme_pager()); # => NULL ?>
_
それは明らかに機能します。 URLに_?page=2,5
_を追加すると、異なる結果が得られます。
次に、ページャーをレンダリングする必要があります。単にtheme_pager()
を呼び出すだけでは機能しません。 theme('pager', array("element" => 1))
を呼び出すと、常にNULL
が返されます。
何が悪いのですか?
更新:コードを現在の状態に更新しました
->initializePager()
の部分が間違っています。どうしてそうするか?その行を強制終了し、通常どおりexecute()
を呼び出します。 theme('pager')
を呼び出すだけで十分です。なぜ失敗するのかわかりません。 (initializePager()
の呼び出しが原因である可能性があります。)
ここを変更:-> pager(3、1)を-> pager(3)に変更します。それが動作します。