如何向默认搜索模块添加条件?
我想在节点中添加一个名为“允许搜索”的复选框字段,未检查的项目将不会显示在搜索结果中。
Extending Drupal 7 search似乎是我的解决方案,但我无法使其发挥作用; hook_search_execute()
未执行。
你能解释一下为什么会这样吗?
答案 0 :(得分:6)
您需要先在admin / config / search / settings上选择模块,并可能在“Active search modules”中取消选择Node模块。如果未在那里选择模块,则不会调用您的钩子。
至于调用一个钩子并且没有调用一个钩子的原因,search_get_info()执行的代码(从search_menu()调用以构建搜索菜单的函数)首先调用{的每个实现{1}},然后检查已启用搜索集成的模块。由于您的模块未启用搜索集成,因此永远不会调用模块的hook_search_info()
。
hook_search_execute()