Я пытаюсь автоматически установить избранное изображение в wordpress, используя следующий код. Код должен взять первое изображение, добавленное в тело сообщения, и автоматически установить его в качестве избранного изображения. Проблема в том, что этот код работает только с изображениями, которые были только что загружены и еще не использовались. Другими словами, если я создам 2 сообщения с одним и тем же изображением в теле, только в первом сообщении это изображение будет установлено в качестве избранного изображения. Это также не будет работать для будущих публикаций с тем же изображением. Как я могу изменить это так, чтобы оно работало, если я буду продолжать использовать одно и то же изображение в теле последующих сообщений?
function autoset_featured() {
global $post;
$already_has_thumb = has_post_thumbnail($post->ID);
if (!$already_has_thumb) {
$attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" );
if ($attached_image) {
foreach ($attached_image as $attachment_id => $attachment) {
set_post_thumbnail($post->ID, $attachment_id);
}
}
}
}
add_action('the_post', 'autoset_featured');
add_action('save_post', 'autoset_featured');
add_action('draft_to_publish', 'autoset_featured');
add_action('new_to_publish', 'autoset_featured');
add_action('pending_to_publish', 'autoset_featured');
add_action('future_to_publish', 'autoset_featured');