// ======================================================================== // 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);
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ä.
Luottoluokittaja S&P Global Ratings on muuttanut Suomen luottoluokituksen näkymät vakaista negatiivisiksi.
Tällä sivulla näet saman uutisaiheen uusimmat jutut yhdestä näkymästä. Kooste päivittyy automaattisesti, kun aiheesta julkaistaan uusia uutisia.
Israelin Gazaan tekemissä iskuissa on kuollut ainakin 13 ihmistä, mukaan lukien kolme lasta. Iskuissa menehtyi myös neljä poliisia. Gazassa on kuollut yli 790 palestiinalaista sen jälkeen, kun aselepo astui voimaan viime lokakuussa.
Tästä pääset Uutiskoosteen eri vaiheisiin. Vihreänä näkyy viimeisin tänään päivitetty kooste. Harmaat näkymät aktivoituvat, kun niihin on julkaistu tämän päivän kooste.
Israelin Gazaan tekemissä iskuissa on kuollut ainakin 13 ihmistä, mukaan lukien kolme lasta. Iskuissa menehtyi myös neljä poliisia. Gazassa on kuollut yli 790 palestiinalaista sen jälkeen, kun aselepo astui voimaan viime lokakuussa.
Aiheesta on julkaistu 2 juttua, 2 eri lähteestä, viimeisin päivitys 25.4.2026 klo 09:17, pääluokka Ulkomaat.
Aihetta seuraavat tällä hetkellä erityisesti Maaseudun Tulevaisuus, MTV Uutiset.
Viimeisimmissä päivityksissä painottuvat muun muassa Israelin iskut Gazassa aiheuttavat kuolemia • Israelin iskut Gazassa tappavat ihmisiä.
Israelin iskut Gazassa tappavat ihmisiä
Israelin armeija on hyökännyt Gazaan ja tappanut ainakin 13 ihmistä. Kolme heistä on lapsia. Iskuissa kuoli myös neljä poliisia, jotka olivat työtehtävissä. Gazassa on ollut paljon kuolemia sen jälkeen, kun aselepo alkoi viime lokakuussa.
Israelin Gazaan tekemissä iskuissa on kuollut ainakin 13 ihmistä, mukaan lukien kolme lasta. Iskuissa menehtyi myös neljä poliisia. Gazassa on kuollut yli 790 palestiinalaista sen jälkeen, kun aselepo…
Israelin viimeisimmissä iskuissa Gazassa on kuollut ainakin 13 ihmistä, joista kolme on lapsia. Gazan siviilipuolustusvirasto raportoi, että iskujen jälkeen useita satoja palestiinalaisia on menehtynyt. Israelin mukaan viisi sotilasta…