function set_first_image_as_featured() {
global $post;
// Eğer öne çıkan görsel zaten varsa, hiçbir işlem yapma
if (has_post_thumbnail($post->ID)) {
return;
}
// Yazı içeriğini getir
$content = $post->post_content;
// Yazı içindeki img etiketlerini düzenli ifadelerle ara
preg_match_all('/<img .*?src=["\'](.*?)["\']/', $content, $matches);
// Eğer bir veya daha fazla img etiketi bulduysa
if (isset($matches[1]) && !empty($matches[1])) {
$first_img_url = $matches[1][0]; // İlk resmi al
// Resmi medya kitaplığına ekle
$upload_dir = wp_upload_dir();
$image_data = file_get_contents($first_img_url);
$filename = basename($first_img_url);
if (wp_mkdir_p($upload_dir['path'])) {
$file = $upload_dir['path'] . '/' . $filename;
} else {
$file = $upload_dir['basedir'] . '/' . $filename;
}
file_put_contents($file, $image_data);
$wp_filetype = wp_check_filetype($filename, null);
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_title' => sanitize_file_name($filename),
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment($attachment, $file, $post->ID);
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attach_data = wp_generate_attachment_metadata($attach_id, $file);
wp_update_attachment_metadata($attach_id, $attach_data);
// Öne çıkan görseli ata
set_post_thumbnail($post->ID, $attach_id);
}
}
// Yeni yazı yayınlandığında veya güncellendiğinde çalıştır
add_action('save_post', 'set_first_image_as_featured');