我想通过电报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的。
有什么建议吗?
钩子transition_post_status和save_post 都可能返回有效的帖子ID,但是当我使用该帖子ID获取缩略图ID(通过get_post_thumbnail_id)时,它们返回0吗? >