Oft gehört Schema bereits zur Standardfunktionalität eines jeden SEO-Plugins, das zusätzlich auf der Website installiert ist. Kleine Anpassungen, und alles ist fertig. Aber es gibt eine Nuance! Erstens ist in der kostenlosen Version des Plugins die Möglichkeit, das Schema zu bearbeiten, nicht verfügbar, und zweitens verwendet es die meisten standardmäßigen (gemeinsamen) Arten von Schemata Organisation, Artikel, Produkt, etc.
In diesem Fall ist es sinnvoll, ein eigenes Schema zu erstellen, das alle Informationen enthält, die wir für notwendig erachten.
Für die Schema-Generierung gibt es einen niedrigfunktionalen Dienst von Google Markup-helper, aber in unserem Fall benutze ich aktiv Chatgpt, es generiert die notwendige Art von Schema-Markup sehr gut.
Wo soll man anfangen?
Fügen Sie die folgenden Zeilen in die Datei functions.php ein. Das All in One SEO Plugin wird als Beispiel genommen.
add_filter( 'aioseo_schema_disable', 'aioseo_disable_schema' );
function aioseo_disable_schema( $disabled ) {
return true;
}
Im Textkörper der Seite und des Artikels wird ein zusätzliches Feld angezeigt, in das Schema-Markup eingefügt werden sollte.
function benutzerdefiniertes_schema_metabox_hinzufuegen() {
add_meta_box(
'benutzerdefiniertes_schema_metabox',
'Feld für neues Schema',
'render_benutzerdefiniertes_schema_metabox',
array('post', 'page'), // Beitragstypen, an die die Metabox angehängt wird
'normal', // Position der Metabox (normal, erweitert, Seite)
'hoch' // Priorität der Metabox (hoch, Kern, Standard, niedrig)
);
}
add_action('add_meta_boxes', 'benutzerdefiniertes_schema_metabox_hinzufuegen');
function render_benutzerdefiniertes_schema_metabox($post) {
// Wert des Metafeldes abrufen, falls er bereits existiert
$schema_code = get_post_meta($post->ID, '_benutzerdefiniertes_schema_code', true);
// Eingabefeld für den Schema-Code anzeigen
echo '';
}
function benutzerdefiniertes_schema_code_speichern($post_id) {
// Überprüfen, ob es sich um einen automatischen Speicherprozess handelt
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return;
}
// Benutzerberechtigungen überprüfen
if (!current_user_can('edit_post', $post_id)) {
return;
}
// Überprüfen, ob der Feldwert übermittelt wurde
if (isset($_POST['benutzerdefiniertes_schema_code'])) {
// Den Feldwert im Metafeld speichern, sichere HTML-Tags zulassen
update_post_meta($post_id, '_benutzerdefiniertes_schema_code', wp_kses_post($_POST['benutzerdefiniertes_schema_code']));
}
}
add_action('save_post', 'benutzerdefiniertes_schema_code_speichern');
function benutzerdefiniertes_schema_json_ausgeben() {
// Das aktuelle Post-Objekt abrufen
global $post;
// Wert des Metafeldes mit dem Schema-Code abrufen
$schema_code = get_post_meta($post->ID, '_benutzerdefiniertes_schema_code', true);
// Überprüfen, ob ein Wert existiert
if ($schema_code) {
// Den JSON-Code in einem ';
}
}
add_action('wp_head', 'benutzerdefiniertes_schema_json_ausgeben');
Als allgemeines Schema für alle Seiten der Website können Grundtypen verwendet werden, die die wichtigsten Aspekte der Website und ihres Inhalts abdecken, z. B. WebSite, WebPage, Organization.
Der folgende Code fügt ein gemeinsames Schema für die russische und ukrainische Version der Website hinzu (fügen Sie den Code erneut in functions.php ein)
Zu Ihrer Erleichterung haben wir einen Schema-Generator mit den gängigsten Typen auf unsere Website gestellt.
function add_schema_script() {
if (function_exists('icl_object_id')) {
$current_language = apply_filters('wpml_current_language', NULL);
// Russische Version
if ($current_language == 'ru') {
?>