WordPress transition_post_status钩子不返回图像

时间:2020-07-19 11:50:45

标签: wordpress hook

我想通过电报API向电报发送文本和图像。除图像外,其他所有功能均正常。返回的图像ID始终为0。

这是代码:

add_action('transition_post_status', 'post_to_telegram', 100, 3);

function post_to_telegram($new_status, $old_status, $post) {
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) { return; }
    if (wp_is_post_autosave($post)) { return; }
    if (wp_is_post_revision($post)) { return; }

    if('publish' === $new_status && $post->post_type === 'post') {
        $apiToken           =   "********************************************";
        $permalink          =   get_permalink($post->ID);
        $specials           =   array("‘", "’");
        $title              =   str_replace($specials, "'", get_the_title($post->ID));
        $image_url          =   wp_get_attachment_url(get_post_thumbnail_id($post->ID));
        $keyboard           =   '{"inline_keyboard": [[{"text":"\uD83D\uDD17 Click here to read", "url": "'.$permalink.'"}]]}';
        $data = [
          'chat_id'         => '@*************',
          'photo'           => $image_url,
          'caption'         => $title,
          'reply_markup'    => $keyboard
        ];

        $response = file_get_contents("https://api.telegram.org/bot$apiToken/sendPhoto?" . http_build_query($data) );       
      }
}

我也尝试了 save_post 钩子,但是当请求get_post_thumbnail_id时,该钩子也返回0。

重要细节:帖子是通过称为“ WP SiteSync”的同步工具添加到WordPress的。

  • 当我打开这样的帖子时,将它们同步到此网站后,一切看起来都很好。特色图片存在。
  • 当我手动更新或重新保存帖子时,此代码有效!
  • 仅当帖子同步到此网站时才执行初始操作,此代码不包含图片ID。

有什么建议吗?

钩子transition_post_status和save_post 都可能返回有效的帖子ID,但是当我使用该帖子ID获取缩略图ID(通过get_post_thumbnail_id)时,它们返回0吗? >

0 个答案:

没有答案