我正在使用这个插件(FantasticElasticSearch) 发布内容时为其编制索引。到目前为止,这是一项艰难而简单的任务,但现在我尝试索引一个标志,表明如果一个帖子是粘性的,我就有麻烦了,这是不可能的。
我正在将插件的addOrUpdate功能更改为我的利润,我正在添加一些数据(特色图像、特色视频…)正如我所说的,我想索引一篇文章是否有粘性。问题是数据库在索引时刻没有更新,我不知道如何连接到该事件。
这就是现在发生的事情:
我发布了一篇帖子,没有粘性我检查帖子是否有粘性,以便将该信息添加到索引中,到目前为止,一切都很好,索引也很好(因为非粘性帖子is\\u sticky返回false)我编辑了这篇文章,然后把它变成了一篇粘性文章。当我检查帖子是否有粘性时,它再次返回false,就好像数据库中还没有更新一样那么,我该去哪里钓鱼呢?我可以用一些函数强制更新带有粘性/非粘性信息的数据库吗?
我正在重写的函数(addOrUpdate)就是this file.
我把它变成这样:
static function addOrUpdate($post){
$type = self::_index(true)->getType($post->post_type);
$data = self::_build_document($post);
//filling $data with extra fields I\'d like to index
$data[\'is_sticky\'] = is_sticky();
//now the document is added to elastic.
$type->addDocument(new \\Elastica\\Document($post->ID, $data));
}
addOrUpdate函数钩住save\\u post事件,如您所见
in the hooks.php 文件
我仍然无法使这项工作正常进行,我希望你能在这件事上给我任何帮助。顺便说一下,我已经尝试了Pat J的方法(Id post作为参数是粘性的,但我在循环中,因为我在save\\u post操作中)。
最后通过查看$\\u POST数组解决了这个问题$_贴子[\'sticky\']仅在贴子(or is being made) 粘性的