// ======================================================================== // UUTISKAISTA STRUCTURED DATA OUTPUT IN // ======================================================================== // Some legacy templates are rendered after header.php's full document shell. // Keep SEO-critical JSON-LD in wp_head so Google sees it inside the document head. if (!function_exists('uutiskaista_schema_default_image_url')) { function uutiskaista_schema_default_image_url() { $og_default_path = trailingslashit(get_template_directory()) . 'images/og-default.png'; if (file_exists($og_default_path)) { return esc_url_raw(get_template_directory_uri() . '/images/og-default.png'); } if (function_exists('get_site_icon_url') && get_site_icon_url(512)) { return esc_url_raw(get_site_icon_url(512)); } return esc_url_raw(get_template_directory_uri() . '/images/logo.png'); } } if (!function_exists('uutiskaista_current_single_item_is_selko')) { function uutiskaista_current_single_item_is_selko() { $request_path = isset($_SERVER['REQUEST_URI']) ? (string) wp_parse_url((string) wp_unslash($_SERVER['REQUEST_URI']), PHP_URL_PATH) : ''; if ($request_path !== '' && preg_match('~/selko-item-\d+/?$~', $request_path)) { return true; } $queried_object = get_queried_object(); if ($queried_object instanceof WP_Post) { return get_page_template_slug($queried_object->ID) === 'selkouutiset.php'; } return false; } } if (!function_exists('uutiskaista_get_single_item_schema_data')) { function uutiskaista_get_single_item_schema_data($item_id, $is_selko = false) { $item_id = absint($item_id); if ($item_id <= 0) { return null; } $db_path = '/home/jr/scraper/summaries_public.db'; if (!is_readable($db_path) || !extension_loaded('pdo_sqlite')) { return null; } $title_col = $is_selko ? 'title_selko' : 'title'; $summary_col = $is_selko ? 'summary_selko' : 'summary'; $prefix = $is_selko ? '/selko-item-' : '/news-item-'; $language = $is_selko ? 'fi-FI' : 'fi'; try { $db = function_exists('uutiskaista_open_db') ? uutiskaista_open_db($db_path, true) : new PDO('sqlite:' . $db_path); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->setAttribute(PDO::ATTR_TIMEOUT, 3); $db->exec('PRAGMA busy_timeout = 3000'); $sql = " SELECT id, {$title_col} AS schema_title, {$summary_col} AS schema_summary, link, timestamp, source, category, selected_category, hashtags FROM summaries WHERE id = :id AND display_in_main_feed = 'yes' AND COALESCE({$title_col}, '') <> '' AND COALESCE({$summary_col}, '') <> '' LIMIT 1 "; $stmt = $db->prepare($sql); $stmt->bindValue(':id', $item_id, PDO::PARAM_INT); $stmt->execute(); $row = $stmt->fetch(PDO::FETCH_ASSOC); } catch (Throwable $e) { error_log('Uutiskaista single item schema DB error: ' . $e->getMessage()); return null; } finally { if (isset($db) && $db instanceof PDO) { $db = null; } } if (empty($row) || !is_array($row)) { return null; } $headline = function_exists('clean_title') ? clean_title((string) ($row['schema_title'] ?? '')) : trim(wp_strip_all_tags((string) ($row['schema_title'] ?? ''))); $description = wp_strip_all_tags(ltrim(trim((string) ($row['schema_summary'] ?? '')), '>')); if ($headline === '' || $description === '') { return null; } $url = esc_url_raw(home_url($prefix . $item_id . '/')); $image_url = uutiskaista_schema_default_image_url(); $article_section = !empty($row['selected_category']) ? (string) $row['selected_category'] : (string) ($row['category'] ?? ''); $schema = [ '@context' => 'https://schema.org', '@type' => 'NewsArticle', '@id' => $url . '#newsarticle', 'mainEntityOfPage' => [ '@type' => 'WebPage', '@id' => $url, ], 'headline' => wp_strip_all_tags($headline), 'description' => $description, 'url' => $url, 'inLanguage' => $language, 'isAccessibleForFree' => true, 'image' => [$image_url], 'thumbnailUrl' => $image_url, 'author' => [ '@type' => 'Organization', '@id' => home_url('/#organization'), 'name' => get_bloginfo('name') ?: 'Uutiskaista', ], 'publisher' => [ '@type' => 'Organization', '@id' => home_url('/#organization'), 'name' => get_bloginfo('name') ?: 'Uutiskaista', ], ]; if ($article_section !== '') { $schema['articleSection'] = wp_strip_all_tags($article_section); } if (!empty($row['timestamp'])) { try { $date_obj = new DateTime((string) $row['timestamp'], new DateTimeZone('Europe/Helsinki')); $schema['datePublished'] = $date_obj->format(DateTime::ATOM); $schema['dateModified'] = $date_obj->format(DateTime::ATOM); } catch (Throwable $e) { error_log('Uutiskaista single item schema date parse error: ' . $e->getMessage()); } } $keywords = []; if ($article_section !== '') { $keywords[] = wp_strip_all_tags($article_section); } if ($is_selko) { $keywords[] = 'selkouutiset'; } if (!empty($row['hashtags'])) { foreach (explode(',', (string) $row['hashtags']) as $raw_hashtag) { $clean = trim((string) $raw_hashtag); if ($clean !== '') { $keywords[] = wp_strip_all_tags($clean); } } } $keywords = array_values(array_unique(array_filter($keywords))); if (!empty($keywords)) { $schema['keywords'] = implode(', ', $keywords); } return $schema; } } add_action('wp_head', function () { if (function_exists('uutiskaista_should_theme_output_seo') && !uutiskaista_should_theme_output_seo()) { return; } $item_id = get_query_var('news_item_id_custom'); if (empty($item_id) || !is_numeric($item_id)) { return; } $is_selko = function_exists('uutiskaista_current_single_item_is_selko') ? uutiskaista_current_single_item_is_selko() : false; $schema = uutiskaista_get_single_item_schema_data((int) $item_id, $is_selko); if (empty($schema) || !is_array($schema)) { return; } echo '' . "\n"; }, 22); add_action('wp_head', function () { if (function_exists('uutiskaista_should_theme_output_seo') && !uutiskaista_should_theme_output_seo()) { return; } if (!function_exists('uutiskaista_is_topic_page') || !uutiskaista_is_topic_page()) { return; } $topic_data = function_exists('uutiskaista_get_current_topic_page_data') ? uutiskaista_get_current_topic_page_data() : null; if (!$topic_data || empty($topic_data['canonical_url']) || empty($topic_data['title'])) { return; } $description = !empty($topic_data['summary']) ? (string) $topic_data['summary'] : ('Uutiskaistan kooste aiheesta ' . (string) $topic_data['title']); $description = wp_trim_words(wp_strip_all_tags($description), 32, '...'); $schema = [ '@context' => 'https://schema.org', '@type' => 'CollectionPage', '@id' => esc_url_raw($topic_data['canonical_url']) . '#collection', 'url' => esc_url_raw($topic_data['canonical_url']), 'name' => wp_strip_all_tags((string) $topic_data['title']), 'headline' => wp_strip_all_tags((string) $topic_data['title']), 'description' => $description, 'inLanguage' => 'fi-FI', 'isPartOf' => [ '@type' => 'WebSite', '@id' => home_url('/#website'), ], 'publisher' => [ '@type' => 'Organization', '@id' => home_url('/#organization'), ], ]; echo '' . "\n"; }, 23); add_action('wp_head', function () { if (function_exists('uutiskaista_should_theme_output_seo') && !uutiskaista_should_theme_output_seo()) { return; } if (!function_exists('uutiskaista_get_search_hub_context')) { return; } $context = uutiskaista_get_search_hub_context(); if (!$context || !empty($context['search_query'])) { return; } $htag = isset($context['htag']) ? trim((string) $context['htag']) : ''; $cat = isset($context['cat_query_var']) ? trim((string) $context['cat_query_var']) : ''; $type = isset($context['type']) && $context['type'] === 'selko' ? 'selko' : 'standard'; if ($htag === '' && $cat === '') { return; } if (function_exists('uutiskaista_search_hub_should_index') && !uutiskaista_search_hub_should_index($htag, $cat, $type)) { return; } $params = []; $label = ''; if ($htag !== '') { $params['htag'] = ltrim($htag, '#'); $label = '#' . ltrim($htag, '#'); } elseif ($cat !== '') { $params['cat'] = $cat; $label = !empty($context['cat_display_name']) ? (string) $context['cat_display_name'] : $cat; } if ($type === 'selko') { $params['type'] = 'selko'; } $url = function_exists('uutiskaista_build_search_url') ? uutiskaista_build_search_url($params) : add_query_arg($params, home_url('/search/')); $title = ($type === 'selko' ? 'Selkouutiset: ' : 'Hakutulokset: ') . $label; $description = ($type === 'selko') ? ('Selkokieliset uutistiivistelmät aiheesta ' . $label . '.') : ('Tällä sivulla näet aiheeseen ' . $label . ' liittyvät uutistiivistelmät yhdestä näkymästä.'); $schema = [ '@context' => 'https://schema.org', '@type' => 'CollectionPage', '@id' => esc_url_raw($url) . '#collection', 'url' => esc_url_raw($url), 'name' => wp_strip_all_tags($title), 'headline' => wp_strip_all_tags($title), 'description' => wp_strip_all_tags($description), 'inLanguage' => 'fi-FI', 'isPartOf' => [ '@type' => 'WebSite', '@id' => home_url('/#website'), ], 'about' => [ '@type' => 'Thing', 'name' => wp_strip_all_tags($label), ], ]; echo '' . "\n"; }, 24);

Nimipäivä:
Markku, Marko, Markus
7°C Helsinki

N/A N/A
?°C ?
N/A Tuntuu kuin ?°C

Nykyiset olosuhteet

Tuuli N/A
Puuska N/A
Kosteus N/A
Ilmanpaine N/A
Näkyvyys N/A
Sademäärä (1h) N/A
Pilvisyys N/A
Kastepiste N/A
UV-indeksi (CAMS) N/A

Sade-ennuste (24h)

0 mm Huippu 0.0 mm

Tuntiennuste (24h)

Päiväennuste (8 vrk)

Tilannekartta

Siitepölyn tilannekartta

Ennustekartta

Siitepölyn ennustekartta
L
Leppä
C
Pähkinäpensas
K
Koivu
H
Heinät
P
Pujo
T
Tuoksukki
Vähän
Kohtalaisesti
Runsaasti
Turun yliopiston siitepölytiedote 24.04.2026

TILANNE

Lepän kukinta jatkuu maan pohjoisosissa. Kukinta on päättynyt maan keskiosissa, mutta alueelle kulkeutuu siitepölyä pohjoisten ilmavirtausten mukana. Varhaisimmat koivut ovat aloittaneet kukinnan maan lounaisosissa.
Lepän siitepölyä on ilmassa enimmäkseen vähän maan keski- ja pohjoisosissa.
Koivun siitepölymäärät ovat kohtalaisia maan lounaisosassa, ja Uudellamaalla määrät ovat enimmäkseen vähäisiä.
Sade laskee ilman siitepölymääriä.


ENNUSTE

Lepän kukinta jatkuu maan pohjoisosissa, mistä siitepölyä kulkeutuu maan keskiosiin. Kukinta heikkenee Pohjois-Pohjanmaalla ja Kainuussa. Koivun kukinta on alkanut maan lounaisosien ja on alkamassa muualla maan eteläosien lämpimimmillä paikoilla. Koivun kukinnan odotetaan alkavan maan keskiosissa kahden viikon sisällä.
Lepän siitepölymäärät jäävät enimmäkseen pieniksi maan keski- ja pohjoisosissa.
Koivun siitepölyä on kohtalaisia määriä maan lounaisosassa. Muualla maan eteläosissa määrät ovat enimmäkseen vähäisiä.
Sade laskee ilman siitepölymääriä.
{{ phpErrorMsg }}
Ladataan uutisia...
{{ errorMsg }}

Israelin iskut Gazassa tappavat ihmisiä

Tuoreimmat uutiset


Valitse uutislähteitä nähdäksesi tuoreimmat uutiset.

{{ isLoading ? vueData.text_loading : vueData.text_no_more }}
{{ vueData.text_filter_hint }}
Ei uutisia saatavilla tällä hetkellä.

Piilota / näytä uutisia

Nousevat aiheet