<?php

function number_info($title, $post_id = 0) {
    $res = [];

    $items = explode(' ', $title);

    // Инициализируем переменные
    $res['year'] = isset($items[4]) ? $items[4] : '';
    $res['number'] = '';
    $res['guid'] = '';

    // Проверяем PDF в метаполях
    $pdf_url = get_post_meta($post_id, '_pdf_file', true);
    if ($pdf_url) {
        $res['guid'] = esc_url($pdf_url);
        return $res;
    }

    // Извлекаем номер
    if (isset($items[2])) {
        $res['number'] = substr($items[2], 1, strlen($items[2]) - 2);
    }

    // Формируем имя для поиска
    $month = isset($items[3]) ? ru2enmonths($items[3]) : '';
    $year = isset($items[4]) ? $items[4] : '';
    
    if ($res['number'] && $month && $year) {
        $name = 'vizh_' . $res['number'] . '_' . $month . '_' . $year;

        // Используем стандартные методы WordPress для поиска поста
       $findpdf = get_posts([
            'name'            => $name,
            'post_type'       => 'attachment',
            'post_status'     => 'inherit',
            'post_mime_type'  => 'application/pdf',
            'posts_per_page'  => 1,
            'orderby'         => 'post_modified',
            'order'           => 'DESC'
        ]);

        if (!empty($findpdf)) {
            $post = $findpdf[0];
            $res['guid'] = get_the_guid($post->ID);
            
            // Альтернативно можно получить URL через permalink
            // $res['guid'] = get_permalink($post->ID);
        }
    }

    return $res;
}

// Альтернативная версия с использованием WP_Query
function number_info_alt($title, $post_id = 0) {
    $res = [];

    $items = explode(' ', $title);

    $res['year'] = isset($items[4]) ? $items[4] : '';
    $res['number'] = '';
    $res['guid'] = '';

    // Проверяем PDF в метаполях
    $pdf_url = get_post_meta($post_id, '_pdf_file', true);
    if ($pdf_url) {
        $res['guid'] = esc_url($pdf_url);
        return $res;
    }

    // Извлекаем номер
    if (isset($items[2])) {
        $res['number'] = substr($items[2], 1, strlen($items[2]) - 2);
    }

    // Формируем имя для поиска
    $month = isset($items[3]) ? ru2enmonths($items[3]) : '';
    $year = isset($items[4]) ? $items[4] : '';
    
    if ($res['number'] && $month && $year) {
        $name = 'vizh_' . $res['number'] . '_' . $month . '_' . $year;

        // Используем WP_Query для более гибкого поиска
        $query = new WP_Query([
            'name'           => $name,
            'post_type'      => 'any',
            'post_status'    => 'publish',
            'posts_per_page' => 1,
            'orderby'        => 'modified',
            'order'          => 'DESC'
        ]);

        if ($query->have_posts()) {
            $query->the_post();
            $res['guid'] = get_the_guid();
            wp_reset_postdata();
        }
    }

    return $res;
}

function ru2enmonths($str) {
    $ruMonths = [
        'январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 
        'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь'
    ];
    $enMonths = [
        'january', 'february', 'march', 'april', 'may', 'june', 
        'july', 'august', 'september', 'october', 'november', 'december'
    ];

    $enDate = str_ireplace($ruMonths, $enMonths, $str);

    return $enDate;
}

// Еще более безопасная версия с проверкой slug
function number_info_safe($title, $post_id = 0) {
    $res = [
        'year' => '',
        'number' => '',
        'guid' => ''
    ];

    $items = explode(' ', $title);

    // Проверяем PDF в метаполях
    $pdf_url = get_post_meta($post_id, '_pdf_file', true);
    if ($pdf_url) {
        $res['guid'] = esc_url($pdf_url);
        return $res;
    }

    // Безопасное извлечение данных
    if (count($items) >= 5) {
        $res['year'] = sanitize_text_field($items[4]);
        
        if (isset($items[2])) {
            $res['number'] = substr($items[2], 1, strlen($items[2]) - 2);
        }

        $month = ru2enmonths($items[3]);
        $name = 'vizh_' . $res['number'] . '_' . $month . '_' . $res['year'];

        // Ищем пост по slug
        $args = [
            'name'           => $name,
            'post_type'      => 'any',
            'post_status'    => 'publish',
            'posts_per_page' => 1,
            'orderby'        => 'modified',
            'order'          => 'DESC'
        ];

        $posts = get_posts($args);

        if (!empty($posts)) {
            $post = $posts[0];
            $res['guid'] = get_permalink($post->ID); // Лучше использовать permalink чем guid
        }
    }

    return $res;
}