Услуга:
— Друг на Час
// 🔹 Безпечна оптимізована функція ALT/TITLE для вкладень function optimized_auto_set_alt_and_title($post_ID) { if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return; if (wp_is_post_revision($post_ID)) return; $post = get_post($post_ID); if (!$post) return; if (!in_array($post->post_type, ['advert', 'post'])) return; $attachments = get_posts([ 'post_type' => 'attachment', 'posts_per_page' => -1, 'post_parent' => $post_ID, ]); if (!$attachments) return; $site_name = 'УХТИ'; $post_title = !empty($post->post_title) ? $post->post_title : 'Фото'; // Місто $city_terms = wp_get_post_terms($post_ID, 'advert-location'); $city = !empty($city_terms) ? $city_terms[0]->name : ''; // Категорії $category_terms = wp_get_post_terms($post_ID, 'advert-category'); $categories = !empty($category_terms) ? implode(', ', wp_list_pluck($category_terms, 'name')) : ''; // Формуємо суфікс, видаляючи порожні елементи $suffix_parts = array_filter([$categories, $city, 'Оголошення', $site_name]); $suffix = ' | ' . implode(' | ', $suffix_parts); foreach ($attachments as $attachment) { // Використовуємо лише ID для унікальності $short_name = $attachment->ID; // ALT завжди оновлюємо $alt = $post_title . $suffix . ' | ' . $short_name; update_post_meta($attachment->ID, '_wp_attachment_image_alt', $alt); // TITLE оновлюємо тільки якщо користувач його не задав $current_title = get_post_field('post_title', $attachment->ID); if (empty($current_title)) { wp_update_post([ 'ID' => $attachment->ID, 'post_title' => $alt ]); } } } add_action('save_post', 'optimized_auto_set_alt_and_title');