知道在‘SAVE_POST’操作中帖子是否粘滞。我要在哪里挂钩?

时间:2015-06-05 作者:Astaroth

我正在使用这个插件(FantasticElasticSearch) 发布内容时为其编制索引。到目前为止,这是一项艰难而简单的任务,但现在我尝试索引一个标志,表明如果一个帖子是粘性的,我就有麻烦了,这是不可能的。

我正在将插件的addOrUpdate功能更改为我的利润,我正在添加一些数据(特色图像、特色视频…)正如我所说的,我想索引一篇文章是否有粘性。问题是数据库在索引时刻没有更新,我不知道如何连接到该事件。

这就是现在发生的事情:

我发布了一篇帖子,没有粘性我检查帖子是否有粘性,以便将该信息添加到索引中,到目前为止,一切都很好,索引也很好(因为非粘性帖子is\\u sticky返回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) 粘性的

2 个回复
最合适的回答,由SO网友:Astaroth 整理而成

正如我在问题帖中所说,我最终通过查看$\\u全球帖子解决了这个问题。有一个$_POST[\'sticky\'] 字段(值为“粘滞”),它仅在文章粘滞或正在粘滞时存在,而不是在文章不粘滞或未粘滞时存在。

SO网友:Pat J

如果不在循环中,则应将ID传递给is_sticky():

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( $post->ID );

    //now the document is added to elastic.
    $type->addDocument(new \\Elastica\\Document($post->ID, $data));       
}
这假设$post 传入的参数是WP_Post 对象

参考is_sticky()

结束

相关推荐

Hooks for Links Box

Possible Duplicate:Getting archive pages in WP's AJAX internal link finder? 新的有挂钩吗internal links box 创建于WP 3.1? 我正在尝试在插件中修改它。