我有一个具有以下要求的表达式引擎网站。
我需要能够通过一对匹配字段来过滤 channel 条目结果集,例如我的条目将有一个 field_a 和 field_b。如果这些字段匹配,我希望它成为返回结果集的一部分。我不能只在前端进行此检查,因为那样结果计数将不正确。我想我可以使用一个钩子(Hook)将字段传递到 exp:channel:entries 标记并更改返回的数据。
这看起来明智吗?如果是的话,有人知道操作该数据的详细信息吗?看看文档,我想我想使用“channel_entries_query_result” Hook ,但我不确定如何实际操作数据。我已经创建了可以正常触发的钩子(Hook),并且我可以看到模板 tag_data 等,但我不确定下一步该去哪里。
谢谢
最佳答案
您可以编写自己的模块,扩展 channel 条目循环。
你可以像这样使用它:
{exp:custom_module:entries}
此方法支持任何默认参数。
模块中的方法如下所示:
public function entries()
{
if( ! class_exists('Channel'))
{
require_once PATH_MOD.'channel/mod.channel.php';
}
// queries grabbing entry ids you want
....
$this->EE->TMPL->tagparams['entry_id'] = implode('|', $entry_ids);
$channel = new Channel();
$tagdata = $channel->entries();
return $tagdata;
}
关于expressionengine - 表达式引擎 Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10753004/