// Добавляем API-обработчик для отдачи SEO-метаданных add_action('wp_ajax_nopriv_get_seo_meta', 'gal_export_seo_meta_handler'); add_action('wp_ajax_get_seo_meta', 'gal_export_seo_meta_handler'); function gal_export_seo_meta_handler() { $url = esc_url_raw($_GET['url'] ?? ''); if (empty($url)) { wp_send_json_error('URL не передан'); } // 1. Поиск ID записи $post_id = url_to_postid($url); if (!$post_id) { $path = trim(wp_parse_url($url, PHP_URL_PATH), '/'); $path_parts = explode('/', $path); $slug = end($path_parts); if ($slug) { global $wpdb; $post_id = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_name = %s AND post_status IN ('publish', 'draft', 'private') LIMIT 1", $slug ) ); } } if (!$post_id) { wp_send_json_error('Запись не найдена'); } // 2. Чтение метаполей WP Meta SEO из базы данных $title = get_post_meta($post_id, '_metaseo_metatitle', true); $description = get_post_meta($post_id, '_metaseo_metadesc', true); $keywords = get_post_meta($post_id, '_metaseo_metakeywords', true); // Запасной поиск (Yoast / RankMath) if (empty($title)) { $title = get_post_meta($post_id, '_yoast_wpseo_title', true) ?: get_post_meta($post_id, 'rank_math_title', true); } if (empty($description)) { $description = get_post_meta($post_id, '_yoast_wpseo_metadesc', true) ?: get_post_meta($post_id, 'rank_math_description', true); } if (empty($keywords)) { $keywords = get_post_meta($post_id, '_yoast_wpseo_focuskw', true) ?: get_post_meta($post_id, 'rank_math_focus_keyword', true); } // Возвращаем результат wp_send_json_success([ 'post_id' => $post_id, 'title' => html_entity_decode((string)$title, ENT_QUOTES | ENT_HTML5, 'UTF-8'), 'description' => html_entity_decode((string)$description, ENT_QUOTES | ENT_HTML5, 'UTF-8'), 'keywords' => html_entity_decode((string)$keywords, ENT_QUOTES | ENT_HTML5, 'UTF-8'), ]); }

ART object “Atmosphere”

Types of work:

  • Modelling, fabrication and installation
  • Painting and patination


Lead time: Three months