$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; }