发布或更新新WordPress帖子时的REST提示

时间:2015-04-25 作者:Richard

我有一个定制的PHP应用程序和一个Wordpress实例,在同一台服务器上作为两个完全独立的代码库运行。我希望我的定制PHP应用程序能够在Wordpress实例发布或更新时使用它的内容。

我正在使用WP API 从我的Wordpress实例检索JSON编码的Wordpress帖子。此插件可以检索所有帖子或单个帖子(由id指定)。

目前,这需要主动轮询Wordpress实例中的所有帖子,然后找出哪些是新帖子,哪些是修改过的,这并不理想。

我希望Wordpress在创建或更新新帖子时通知我的PHP应用程序。我意识到Wordpress有很多电子邮件通知插件(最好的是Better Notifications for Wordpress). 但我不想有运行SMTP服务器和解析电子邮件内容的开销。

我一直在寻找一种简单地使用REST向我的应用程序发送帖子或获取请求的解决方案,传递(最近发布或更新的)Wordpress帖子的ID。我不知道有任何内置Wordpress功能或插件可以实现这一点。

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

使用HTTP API 要在上发送“ping”wp_insert_post 操作,在创建/更新帖子时激发:

/**
 * @param   int     $post_id    The ID of the post.
 * @param   WP_Post $post       The post object.
 * @param   bool    $update     True if the post already exists and is being updated
 */
function wpse_185340_post_ping( $post_id, $post, $update ) {
    if ( $post->post_status === \'publish\' ) { // Only fire when published
        wp_remote_post(
            \'http://example.com/application/notify\',
            array(
                // https://codex.wordpress.org/HTTP_API
                \'blocking\' => false, // If you don\'t need to know the response, disable blocking for an "async" request
                \'body\' => array(
                    \'post_id\' => $post_id,
                    \'post\'    => json_encode( $post ),
                    \'update\'  => ( int ) $update,
                    // or whatever
                )
            )
        );
    }   
}

add_action( \'wp_insert_post\', \'wpse_185340_post_ping\', 10, 3 );

SO网友:gpnalin

您可以使用WPsave_post 行动挂钩,带extending WP-API plugin.

结束

相关推荐

google +1 like polling system

我有一个摄影博客——在一个月的帖子中,我为不同的摄影师提供了不同的图片——大约50多张图片,我请用户投票选出他们最喜欢的图片。事实证明这很难,因为很难对一张图片下定决心,所以我想实现一个类似于谷歌+1的投票系统每个图片旁边都有一个+1按钮-如果你喜欢这张图片,点击+1-你可以喜欢很多图片。没有任何社交媒体交互在后台进行,就像没有真正向google+1提交照片以避免向用户发送垃圾邮件一样。。但这只是一个想法。我不想使用带有复选框的常规轮询。有没有什么插件可以做到这一点?关于如何对其进行编码,有什么反馈或想法

发布或更新新WordPress帖子时的REST提示 - 小码农CODE - 行之有效找到问题解决它

发布或更新新WordPress帖子时的REST提示

时间:2015-04-25 作者:Richard

我有一个定制的PHP应用程序和一个Wordpress实例,在同一台服务器上作为两个完全独立的代码库运行。我希望我的定制PHP应用程序能够在Wordpress实例发布或更新时使用它的内容。

我正在使用WP API 从我的Wordpress实例检索JSON编码的Wordpress帖子。此插件可以检索所有帖子或单个帖子(由id指定)。

目前,这需要主动轮询Wordpress实例中的所有帖子,然后找出哪些是新帖子,哪些是修改过的,这并不理想。

我希望Wordpress在创建或更新新帖子时通知我的PHP应用程序。我意识到Wordpress有很多电子邮件通知插件(最好的是Better Notifications for Wordpress). 但我不想有运行SMTP服务器和解析电子邮件内容的开销。

我一直在寻找一种简单地使用REST向我的应用程序发送帖子或获取请求的解决方案,传递(最近发布或更新的)Wordpress帖子的ID。我不知道有任何内置Wordpress功能或插件可以实现这一点。

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

使用HTTP API 要在上发送“ping”wp_insert_post 操作,在创建/更新帖子时激发:

/**
 * @param   int     $post_id    The ID of the post.
 * @param   WP_Post $post       The post object.
 * @param   bool    $update     True if the post already exists and is being updated
 */
function wpse_185340_post_ping( $post_id, $post, $update ) {
    if ( $post->post_status === \'publish\' ) { // Only fire when published
        wp_remote_post(
            \'http://example.com/application/notify\',
            array(
                // https://codex.wordpress.org/HTTP_API
                \'blocking\' => false, // If you don\'t need to know the response, disable blocking for an "async" request
                \'body\' => array(
                    \'post_id\' => $post_id,
                    \'post\'    => json_encode( $post ),
                    \'update\'  => ( int ) $update,
                    // or whatever
                )
            )
        );
    }   
}

add_action( \'wp_insert_post\', \'wpse_185340_post_ping\', 10, 3 );

SO网友:gpnalin

您可以使用WPsave_post 行动挂钩,带extending WP-API plugin.

相关推荐

google +1 like polling system

我有一个摄影博客——在一个月的帖子中,我为不同的摄影师提供了不同的图片——大约50多张图片,我请用户投票选出他们最喜欢的图片。事实证明这很难,因为很难对一张图片下定决心,所以我想实现一个类似于谷歌+1的投票系统每个图片旁边都有一个+1按钮-如果你喜欢这张图片,点击+1-你可以喜欢很多图片。没有任何社交媒体交互在后台进行,就像没有真正向google+1提交照片以避免向用户发送垃圾邮件一样。。但这只是一个想法。我不想使用带有复选框的常规轮询。有没有什么插件可以做到这一点?关于如何对其进行编码,有什么反馈或想法