403Webshell
Server IP : 202.61.199.114  /  Your IP : 216.73.217.139
Web Server : nginx/1.22.1
System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
User : web20 ( 1018)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/clients/client2/web20/web/wp-content/plugins/dgt-verkehrsmonitor/includes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/clients/client2/web20/web/wp-content/plugins/dgt-verkehrsmonitor/includes/schema.php
<?php
/**
 * SEO: Meta-Tags, Open Graph, Twitter Cards, Keywords & Schema.org (JSON-LD).
 *
 * @package dgt-verkehrsmonitor
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

define( 'DGT_VM_OG_IMAGE', 'https://www.drogentest-online.de/wp-content/uploads/2026/06/profil-verkehrsmonitor-deutschland.webp' );
define( 'DGT_VM_FB_PROFILE', 'https://www.facebook.com/profile.php?id=61590466511052' );

/* Theme-SEO wird für VM-Seiten in inc/seo.php übersprungen (dgt_vm Query-Var-Check). */

/* ─── SEO-Daten pro Seitentyp ─────────────────────────── */

function dgt_vm_seo_data() {
	$view = get_query_var( 'dgt_vm' );
	if ( ! $view ) {
		return null;
	}

	$seo = array(
		'title'       => '',
		'description' => '',
		'keywords'    => '',
		'url'         => '',
		'image'       => DGT_VM_OG_IMAGE,
		'type'        => 'website',
	);

	switch ( $view ) {

		case 'hub':
			$seo['title']       = 'Polizeimeldungen zu Alkohol & Drogen am Steuer';
			$seo['description'] = 'Tagesaktuelle Polizeimeldungen zu Alkohol- und Drogenfahrten in Deutschland. KI-analysiert, nach Bundesland, Substanz und Delikt filterbar. Täglich neue Fälle.';
			$seo['keywords']    = 'Verkehrsmonitor, Alkohol am Steuer, Drogen am Steuer, Polizeimeldungen, Verkehrsdelikte Deutschland, Trunkenheitsfahrt, Drogenfahrt, KI-Analyse';
			$seo['url']         = dgt_vm_url();
			break;

		case 'report_heute':
			$seo['title']       = 'Tagesreport – ' . date_i18n( 'j. F Y' );
			$seo['description'] = 'Tagesreport Verkehrsmonitor: Alle Polizeimeldungen zu Alkohol und Drogen am Steuer vom ' . date_i18n( 'j. F Y' ) . '. Fallzahlen, Bundesländer und Substanzen im Überblick.';
			$seo['keywords']    = 'Tagesreport, Verkehrsmonitor, Polizeimeldungen heute, Alkohol am Steuer aktuell, Drogen am Steuer heute, Verkehrsdelikte';
			$seo['url']         = dgt_vm_report_url( 'heute' );
			$seo['type']        = 'article';
			break;

		case 'report':
			$d = get_query_var( 'dgt_vm_date' );
			$d_label = dgt_vm_format_date( $d );
			$seo['title']       = 'Tagesreport – ' . $d_label;
			$seo['description'] = 'Polizeimeldungen zu Alkohol- und Drogendelikten im Straßenverkehr vom ' . $d_label . '. Alle Fälle mit Bundesland, Substanzen und Polizeibehörde.';
			$seo['keywords']    = 'Tagesreport ' . $d_label . ', Verkehrsmonitor, Polizeimeldungen, Alkohol am Steuer, Drogen am Steuer';
			$seo['url']         = dgt_vm_report_url( $d );
			$seo['type']        = 'article';
			break;

		case 'statistiken':
			$seo['title']       = 'Statistiken – Alkohol & Drogen am Steuer in Deutschland';
			$seo['description'] = 'Statistiken zu Alkohol- und Drogenfahrten in Deutschland: Bundesland-Vergleich, Substanz-Ranking, Wochentag-Verteilung und Trends. Datenbasiert und tagesaktuell.';
			$seo['keywords']    = 'Statistiken, Alkohol am Steuer Zahlen, Drogen am Steuer Statistik, Verkehrsdelikte Deutschland, Bundesland-Vergleich, Trunkenheitsfahrten';
			$seo['url']         = dgt_vm_statistiken_url();
			break;

		case 'archiv':
			$year  = get_query_var( 'dgt_vm_year' );
			$month = get_query_var( 'dgt_vm_month' );
			if ( $year && $month ) {
				$m_label = date_i18n( 'F Y', strtotime( $year . '-' . $month . '-01' ) );
				$seo['title']       = 'Archiv ' . $m_label . ' – Polizeimeldungen';
				$seo['description'] = 'Alle Polizeimeldungen zu Alkohol und Drogen am Steuer aus ' . $m_label . '. Archiv des Verkehrsmonitor Deutschland.';
				$seo['keywords']    = 'Archiv ' . $m_label . ', Verkehrsmonitor, Polizeimeldungen, Alkohol am Steuer, Drogen am Steuer';
			} elseif ( $year ) {
				$seo['title']       = 'Archiv ' . $year . ' – Polizeimeldungen Deutschland';
				$seo['description'] = 'Alle Polizeimeldungen zu Alkohol und Drogen am Steuer aus dem Jahr ' . $year . '. Monatsweise durchsuchbar.';
				$seo['keywords']    = 'Archiv ' . $year . ', Verkehrsmonitor, Polizeimeldungen, Alkohol am Steuer, Drogen am Steuer';
			} else {
				$seo['title']       = 'Archiv – Alle Polizeimeldungen Deutschland';
				$seo['description'] = 'Durchsuchbares Archiv aller Polizeimeldungen zu Alkohol- und Drogendelikten im Straßenverkehr. Nach Datum, Monat und Jahr filterbar.';
				$seo['keywords']    = 'Archiv, Verkehrsmonitor, Polizeimeldungen, Alkohol am Steuer, Drogen am Steuer, Verkehrsdelikte';
			}
			$seo['url'] = dgt_vm_archiv_url( $year ?: '', $month ?: '' );
			break;

		case 'kategorie':
			$kat = get_query_var( 'dgt_vm_kat' );
			$kat_seo = array(
				'alkohol-am-steuer' => array(
					'title' => 'Alkohol am Steuer – Aktuelle Polizeimeldungen Deutschland',
					'desc'  => 'Alle aktuellen Polizeimeldungen zu Trunkenheitsfahrten in Deutschland. Promillewerte, Unfälle, Führerscheinentzug – täglich aktualisiert vom Verkehrsmonitor.',
					'kw'    => 'Alkohol am Steuer, Trunkenheitsfahrt, Polizeimeldungen, Promille, Führerscheinentzug, Verkehrsdelikt, Alkoholfahrt Deutschland',
				),
				'drogen-am-steuer' => array(
					'title' => 'Drogen am Steuer – Aktuelle Polizeimeldungen Deutschland',
					'desc'  => 'Alle aktuellen Polizeimeldungen zu Drogenfahrten in Deutschland. Cannabis, Kokain, Amphetamin – täglich aktualisiert vom Verkehrsmonitor.',
					'kw'    => 'Drogen am Steuer, Drogenfahrt, Cannabis am Steuer, Kokain am Steuer, Amphetamin, Polizeimeldungen, Verkehrsdelikt Deutschland',
				),
				'unfaelle' => array(
					'title' => 'Verkehrsunfälle unter Alkohol- & Drogeneinfluss – Deutschland',
					'desc'  => 'Aktuelle Verkehrsunfälle unter Substanzeinfluss in Deutschland. Polizeimeldungen zu Unfällen mit Alkohol und Drogen am Steuer – täglich aktualisiert.',
					'kw'    => 'Verkehrsunfälle, Unfall Alkohol am Steuer, Unfall Drogen am Steuer, Substanzeinfluss, Polizeimeldungen, Verkehrsmonitor',
				),
			);
			if ( isset( $kat_seo[ $kat ] ) ) {
				$seo['title']       = $kat_seo[ $kat ]['title'];
				$seo['description'] = $kat_seo[ $kat ]['desc'];
				$seo['keywords']    = $kat_seo[ $kat ]['kw'];
			}
			$seo['url'] = dgt_vm_kategorie_url( $kat );
			break;

		case 'substanz':
			$sub   = get_query_var( 'dgt_vm_sub' );
			$label = dgt_vm_substanz_label( $sub );
			$sub_seo = array(
				'cannabis' => array(
					'desc' => 'Aktuelle Polizeimeldungen zu Cannabis am Steuer in Deutschland. THC-Fahrten, Grenzwerte, Führerscheinfolgen – täglich aktualisiert.',
					'kw'   => 'Cannabis am Steuer, THC Fahrt, Kiffen und Autofahren, Polizeimeldungen Cannabis, Führerschein THC, Drogenfahrt Cannabis',
				),
				'kokain' => array(
					'desc' => 'Aktuelle Polizeimeldungen zu Kokain am Steuer in Deutschland. Drogenfahrten, Polizeiberichte und Konsequenzen – täglich aktualisiert.',
					'kw'   => 'Kokain am Steuer, Kokain Fahrt, Polizeimeldungen Kokain, Drogenfahrt, Verkehrsdelikt Kokain',
				),
				'amphetamin' => array(
					'desc' => 'Aktuelle Polizeimeldungen zu Amphetamin und Speed am Steuer in Deutschland. Drogenfahrten mit Amphetaminen – täglich aktualisiert.',
					'kw'   => 'Amphetamin am Steuer, Speed am Steuer, Polizeimeldungen Amphetamin, Drogenfahrt, Verkehrsdelikt Amphetamine',
				),
				'mischkonsum' => array(
					'desc' => 'Polizeimeldungen zu Mischkonsum am Steuer: Alkohol und Drogen kombiniert. Fälle aus ganz Deutschland – täglich aktualisiert.',
					'kw'   => 'Mischkonsum am Steuer, Alkohol und Drogen, Polizeimeldungen Mischkonsum, Drogenfahrt, Mehrfachsubstanz Verkehr',
				),
				'medikamente' => array(
					'desc' => 'Polizeimeldungen zu Medikamenten am Steuer in Deutschland. Fahruntüchtigkeit durch Medikamenteneinfluss – täglich aktualisiert.',
					'kw'   => 'Medikamente am Steuer, Medikamenteneinfluss Fahren, Polizeimeldungen, Fahruntüchtigkeit Medikamente, Verkehrsdelikt',
				),
			);
			$seo['title'] = $label . ' am Steuer – Polizeimeldungen & Statistiken Deutschland';
			if ( isset( $sub_seo[ $sub ] ) ) {
				$seo['description'] = $sub_seo[ $sub ]['desc'];
				$seo['keywords']    = $sub_seo[ $sub ]['kw'];
			} else {
				$seo['description'] = 'Aktuelle Polizeimeldungen zu ' . $label . ' am Steuer in Deutschland. Täglich aktualisiert vom Verkehrsmonitor.';
				$seo['keywords']    = $label . ' am Steuer, Drogenfahrt, Polizeimeldungen, Verkehrsmonitor';
			}
			$seo['url'] = home_url( '/verkehrsmonitor/' . $sub . '/' );
			break;

		case 'bundesland':
		case 'stadt':
			$bl_slug = get_query_var( 'dgt_vm_bl' );
			$bl      = dgt_vm_bundesland_name( $bl_slug );
			$stadt   = get_query_var( 'dgt_vm_stadt' );
			if ( $stadt ) {
				$stadt_label = ucfirst( str_replace( '-', ' ', $stadt ) );
				$seo['title']       = $stadt_label . ' – Polizeimeldungen Alkohol & Drogen';
				$seo['description'] = 'Aktuelle Polizeimeldungen zu Alkohol und Drogen am Steuer in ' . $stadt_label . ' (' . $bl . '). Alle Fälle im Überblick.';
				$seo['keywords']    = $stadt_label . ' Polizeimeldungen, Alkohol am Steuer ' . $stadt_label . ', Drogen am Steuer ' . $bl . ', Verkehrsmonitor';
				$seo['url']         = dgt_vm_stadt_url( $bl_slug, $stadt );
			} elseif ( $bl ) {
				$seo['title']       = $bl . ' – Polizeimeldungen Alkohol & Drogen am Steuer';
				$seo['description'] = 'Alle aktuellen Polizeimeldungen zu Alkohol und Drogen am Steuer in ' . $bl . '. Städte, Substanzen und Trends – täglich aktualisiert.';
				$seo['keywords']    = $bl . ' Polizeimeldungen, Alkohol am Steuer ' . $bl . ', Drogen am Steuer ' . $bl . ', Verkehrsmonitor ' . $bl . ', Verkehrsdelikte';
				$seo['url']         = dgt_vm_bundesland_url( $bl_slug );
			}
			break;

		case 'single':
			$inc = get_query_var( 'dgt_vm_incident' );
			if ( $inc ) {
				$bl_name     = dgt_vm_bundesland_name( $inc->bundesland );
				$ort         = $inc->stadt ? $inc->stadt . ', ' . $bl_name : $bl_name;
				$seo['title']       = $inc->ai_headline;
				$seo['description'] = wp_trim_words( wp_strip_all_tags( $inc->ai_summary ), 28, ' …' );
				$kw_parts = array( 'Polizeimeldung ' . $ort );
				if ( $inc->hat_alkohol ) {
					$kw_parts[] = 'Alkohol am Steuer ' . ( $inc->stadt ?: $bl_name );
				}
				if ( $inc->hat_drogen ) {
					$kw_parts[] = 'Drogen am Steuer ' . ( $inc->stadt ?: $bl_name );
				}
				$subs = $inc->hat_drogen ? json_decode( $inc->substanzen, true ) : array();
				if ( is_array( $subs ) ) {
					foreach ( array_slice( $subs, 0, 3 ) as $s ) {
						$kw_parts[] = ucfirst( $s ) . ' am Steuer';
					}
				}
				if ( $inc->hat_unfall ) {
					$kw_parts[] = 'Verkehrsunfall ' . ( $inc->stadt ?: $bl_name );
				}
				$kw_parts[] = 'Verkehrsmonitor';
				$seo['keywords'] = implode( ', ', $kw_parts );
				$seo['url']      = dgt_vm_incident_url( $inc );
				$seo['type']     = 'article';
			}
			break;
	}

	return $seo;
}

/* ─── Meta Title (optimiert) ──────────────────────────── */

function dgt_vm_document_title( $parts ) {
	$seo = dgt_vm_seo_data();
	if ( $seo && $seo['title'] ) {
		$parts['title'] = $seo['title'];
		$parts['site']  = 'Verkehrsmonitor Deutschland';
	}
	return $parts;
}
add_filter( 'document_title_parts', 'dgt_vm_document_title', 40 );

/* ─── Meta Description, Keywords, Robots ──────────────── */

function dgt_vm_meta_tags() {
	$seo = dgt_vm_seo_data();
	if ( ! $seo ) {
		return;
	}

	if ( $seo['description'] ) {
		printf( '<meta name="description" content="%s">' . "\n", esc_attr( $seo['description'] ) );
	}
	if ( $seo['keywords'] ) {
		printf( '<meta name="keywords" content="%s">' . "\n", esc_attr( $seo['keywords'] ) );
	}
	echo '<meta name="robots" content="index, follow, max-image-preview:large">' . "\n";
}
add_action( 'wp_head', 'dgt_vm_meta_tags', 5 );

/* ─── Open Graph & Twitter Card ───────────────────────── */

function dgt_vm_og_tags() {
	$seo = dgt_vm_seo_data();
	if ( ! $seo ) {
		return;
	}

	$title = $seo['title'] ?: 'Verkehrsmonitor Deutschland';
	$desc  = $seo['description'] ?: 'Polizeimeldungen zu Alkohol & Drogen am Steuer – KI-analysiert.';
	$url   = $seo['url'] ?: dgt_vm_url();
	$image = $seo['image'];
	$type  = $seo['type'];

	echo "\n<!-- Verkehrsmonitor Open Graph -->\n";
	printf( '<meta property="og:type" content="%s">' . "\n", esc_attr( $type ) );
	printf( '<meta property="og:title" content="%s">' . "\n", esc_attr( $title ) );
	printf( '<meta property="og:description" content="%s">' . "\n", esc_attr( $desc ) );
	printf( '<meta property="og:url" content="%s">' . "\n", esc_url( $url ) );
	printf( '<meta property="og:image" content="%s">' . "\n", esc_url( $image ) );
	echo '<meta property="og:image:width" content="1200">' . "\n";
	echo '<meta property="og:image:height" content="1200">' . "\n";
	echo '<meta property="og:locale" content="de_DE">' . "\n";
	echo '<meta property="og:site_name" content="drogentest-online.de">' . "\n";

	if ( 'article' === $type ) {
		echo '<meta property="article:publisher" content="' . esc_url( DGT_VM_FB_PROFILE ) . '">' . "\n";

		$view = get_query_var( 'dgt_vm' );
		if ( 'single' === $view ) {
			$inc = get_query_var( 'dgt_vm_incident' );
			if ( $inc ) {
				$pub = $inc->published_at ?: $inc->created_at;
				printf( '<meta property="article:published_time" content="%s">' . "\n", esc_attr( gmdate( 'c', strtotime( $pub ) ) ) );
				printf( '<meta property="article:modified_time" content="%s">' . "\n", esc_attr( gmdate( 'c', strtotime( $inc->updated_at ) ) ) );
				echo '<meta property="article:section" content="Verkehrsmonitor">' . "\n";
				if ( $inc->hat_alkohol ) {
					echo '<meta property="article:tag" content="Alkohol am Steuer">' . "\n";
				}
				if ( $inc->hat_drogen ) {
					echo '<meta property="article:tag" content="Drogen am Steuer">' . "\n";
				}
				if ( $inc->hat_unfall ) {
					echo '<meta property="article:tag" content="Verkehrsunfall">' . "\n";
				}
			}
		}
	}

	echo "\n<!-- Verkehrsmonitor Twitter Card -->\n";
	echo '<meta name="twitter:card" content="summary_large_image">' . "\n";
	printf( '<meta name="twitter:title" content="%s">' . "\n", esc_attr( $title ) );
	printf( '<meta name="twitter:description" content="%s">' . "\n", esc_attr( $desc ) );
	printf( '<meta name="twitter:image" content="%s">' . "\n", esc_url( $image ) );
}
add_action( 'wp_head', 'dgt_vm_og_tags', 6 );

/* ─── Schema.org JSON-LD ──────────────────────────────── */

function dgt_vm_publisher() {
	return array(
		'@type'  => 'Organization',
		'name'   => 'Verkehrsmonitor Deutschland',
		'url'    => dgt_vm_url(),
		'sameAs' => array( DGT_VM_FB_PROFILE ),
		'logo'   => array(
			'@type'  => 'ImageObject',
			'url'    => DGT_VM_OG_IMAGE,
			'width'  => 1200,
			'height' => 1200,
		),
		'parentOrganization' => array(
			'@type' => 'Organization',
			'name'  => 'drogentest-online.de',
			'url'   => home_url( '/' ),
		),
	);
}

function dgt_vm_schema_output() {
	$view = get_query_var( 'dgt_vm' );
	if ( ! $view ) {
		return;
	}

	$schemas = array();

	switch ( $view ) {
		case 'hub':
			$schemas[] = dgt_vm_schema_hub();
			break;
		case 'report_heute':
		case 'report':
			$schemas[] = dgt_vm_schema_report();
			break;
		case 'single':
			$inc = get_query_var( 'dgt_vm_incident' );
			if ( $inc ) {
				$combined = dgt_vm_schema_single( $inc );
				$schemas  = array_merge( $schemas, $combined );
			}
			break;
		case 'bundesland':
		case 'stadt':
			$schemas[] = dgt_vm_schema_bundesland();
			break;
		case 'kategorie':
			$schemas[] = dgt_vm_schema_kategorie();
			break;
		case 'substanz':
			$schemas[] = dgt_vm_schema_substanz();
			break;
		case 'statistiken':
			$schemas[] = dgt_vm_schema_statistiken();
			break;
		case 'archiv':
			$schemas[] = dgt_vm_schema_archiv();
			break;
	}

	foreach ( $schemas as $schema ) {
		if ( $schema ) {
			echo '<script type="application/ld+json">' . wp_json_encode( $schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT ) . '</script>' . "\n";
		}
	}
}
add_action( 'wp_head', 'dgt_vm_schema_output', 30 );

function dgt_vm_schema_hub() {
	return array(
		'@context'    => 'https://schema.org',
		'@type'       => 'WebSite',
		'name'        => 'Verkehrsmonitor Deutschland',
		'description' => 'Tagesaktuelle Polizeimeldungen zu Alkohol- und Drogenfahrten in Deutschland. KI-analysiert, nach Bundesland und Substanz filterbar.',
		'url'         => dgt_vm_url(),
		'publisher'   => dgt_vm_publisher(),
		'image'       => DGT_VM_OG_IMAGE,
		'inLanguage'  => 'de-DE',
		'sameAs'      => array( DGT_VM_FB_PROFILE ),
	);
}

function dgt_vm_schema_report() {
	$date = get_query_var( 'dgt_vm_date' );
	if ( ! $date ) {
		$date = gmdate( 'Y-m-d', strtotime( '-1 day' ) );
	}
	return array(
		'@context'         => 'https://schema.org',
		'@type'            => 'Article',
		'headline'         => 'Verkehrsmonitor Tagesreport – ' . dgt_vm_format_date( $date ),
		'datePublished'    => $date . 'T08:00:00+02:00',
		'image'            => DGT_VM_OG_IMAGE,
		'author'           => dgt_vm_publisher(),
		'publisher'        => dgt_vm_publisher(),
		'mainEntityOfPage' => dgt_vm_report_url( $date ),
		'about'            => array(
			'@type'            => 'Dataset',
			'name'             => 'Verkehrsdelikte Deutschland ' . dgt_vm_format_date( $date ),
			'temporalCoverage' => $date,
			'spatialCoverage'  => array( '@type' => 'Country', 'name' => 'Deutschland' ),
		),
	);
}

function dgt_vm_schema_single( $inc ) {
	$bl_name = dgt_vm_bundesland_name( $inc->bundesland );

	$article = array(
		'@context'         => 'https://schema.org',
		'@type'            => 'NewsArticle',
		'headline'         => $inc->ai_headline,
		'datePublished'    => gmdate( 'c', strtotime( $inc->published_at ?: $inc->created_at ) ),
		'dateModified'     => gmdate( 'c', strtotime( $inc->updated_at ) ),
		'author'           => dgt_vm_publisher(),
		'publisher'        => dgt_vm_publisher(),
		'description'      => wp_trim_words( $inc->ai_summary, 30 ),
		'mainEntityOfPage' => dgt_vm_incident_url( $inc ),
		'image'            => DGT_VM_OG_IMAGE,
		'inLanguage'       => 'de-DE',
	);

	if ( $inc->stadt || $inc->bundesland ) {
		$article['about'] = array(
			'@type'   => 'Place',
			'name'    => $inc->stadt ? $inc->stadt . ', ' . $bl_name : $bl_name,
			'address' => array(
				'@type'          => 'PostalAddress',
				'addressRegion'  => $bl_name,
				'addressCountry' => 'DE',
			),
		);
	}

	if ( $inc->source_url ) {
		$article['isBasedOn'] = array( '@type' => 'Article', 'url' => $inc->source_url );
	}

	$fb_posts = get_option( 'dgt_vm_fb_posts', array() );
	$fb_entry = isset( $fb_posts[ $inc->id ] ) ? $fb_posts[ $inc->id ] : null;
	if ( $fb_entry && ! empty( $fb_entry['fb_url'] ) ) {
		$is_published = empty( $fb_entry['scheduled'] ) || (int) $fb_entry['scheduled'] <= time();
		if ( $is_published ) {
			$article['sameAs'] = $fb_entry['fb_url'];
		}
	}

	$breadcrumb = array(
		'@context'        => 'https://schema.org',
		'@type'           => 'BreadcrumbList',
		'itemListElement' => array(
			array( '@type' => 'ListItem', 'position' => 1, 'name' => 'Start', 'item' => home_url( '/' ) ),
			array( '@type' => 'ListItem', 'position' => 2, 'name' => 'Verkehrsmonitor', 'item' => dgt_vm_url() ),
			array( '@type' => 'ListItem', 'position' => 3, 'name' => $bl_name, 'item' => dgt_vm_bundesland_url( $inc->bundesland ) ),
			array( '@type' => 'ListItem', 'position' => 4, 'name' => $inc->ai_headline ),
		),
	);

	return array( $article, $breadcrumb );
}

function dgt_vm_schema_bundesland() {
	$bl_slug = get_query_var( 'dgt_vm_bl' );
	$bl      = dgt_vm_bundesland_name( $bl_slug );
	$stadt   = get_query_var( 'dgt_vm_stadt' );
	$name    = $stadt ? ucfirst( str_replace( '-', ' ', $stadt ) ) . ' (' . $bl . ')' : $bl;

	return array(
		'@context'    => 'https://schema.org',
		'@type'       => 'CollectionPage',
		'name'        => 'Verkehrsmonitor ' . $name,
		'description' => 'Polizeimeldungen zu Alkohol und Drogen am Steuer in ' . $name . '.',
		'url'         => $stadt ? dgt_vm_stadt_url( $bl_slug, $stadt ) : dgt_vm_bundesland_url( $bl_slug ),
		'publisher'   => dgt_vm_publisher(),
		'image'       => DGT_VM_OG_IMAGE,
		'about'       => array(
			'@type'   => 'Place',
			'name'    => $name,
			'address' => array(
				'@type'          => 'PostalAddress',
				'addressRegion'  => $bl,
				'addressCountry' => 'DE',
			),
		),
	);
}

function dgt_vm_schema_kategorie() {
	$kat    = get_query_var( 'dgt_vm_kat' );
	$labels = array(
		'alkohol-am-steuer' => 'Alkohol am Steuer',
		'drogen-am-steuer'  => 'Drogen am Steuer',
		'unfaelle'          => 'Verkehrsunfälle unter Substanzeinfluss',
	);
	$label = $labels[ $kat ] ?? ucfirst( str_replace( '-', ' ', $kat ) );

	return array(
		'@context'    => 'https://schema.org',
		'@type'       => 'CollectionPage',
		'name'        => $label . ' – Polizeimeldungen Deutschland',
		'description' => 'Aktuelle Polizeimeldungen: ' . $label . ' in Deutschland.',
		'url'         => dgt_vm_kategorie_url( $kat ),
		'publisher'   => dgt_vm_publisher(),
		'image'       => DGT_VM_OG_IMAGE,
		'inLanguage'  => 'de-DE',
	);
}

function dgt_vm_schema_substanz() {
	$sub   = get_query_var( 'dgt_vm_sub' );
	$label = dgt_vm_substanz_label( $sub );

	return array(
		'@context'    => 'https://schema.org',
		'@type'       => 'CollectionPage',
		'name'        => $label . ' am Steuer – Polizeimeldungen',
		'description' => 'Polizeimeldungen zu ' . $label . ' am Steuer in Deutschland.',
		'url'         => home_url( '/verkehrsmonitor/' . $sub . '/' ),
		'publisher'   => dgt_vm_publisher(),
		'image'       => DGT_VM_OG_IMAGE,
		'inLanguage'  => 'de-DE',
	);
}

function dgt_vm_schema_statistiken() {
	return array(
		'@context'    => 'https://schema.org',
		'@type'       => 'WebPage',
		'name'        => 'Verkehrsmonitor Statistiken',
		'description' => 'Statistiken zu Alkohol- und Drogenfahrten in Deutschland. Bundesland-Vergleich, Substanz-Ranking und Trends.',
		'url'         => dgt_vm_statistiken_url(),
		'publisher'   => dgt_vm_publisher(),
		'image'       => DGT_VM_OG_IMAGE,
		'inLanguage'  => 'de-DE',
	);
}

function dgt_vm_schema_archiv() {
	return array(
		'@context'    => 'https://schema.org',
		'@type'       => 'CollectionPage',
		'name'        => 'Verkehrsmonitor Archiv',
		'description' => 'Durchsuchbares Archiv aller Polizeimeldungen zu Alkohol- und Drogendelikten im Straßenverkehr.',
		'url'         => dgt_vm_archiv_url(),
		'publisher'   => dgt_vm_publisher(),
		'image'       => DGT_VM_OG_IMAGE,
		'inLanguage'  => 'de-DE',
	);
}

Youez - 2016 - github.com/yon3zu
LinuXploit