Support » Allgemeine Fragen » Title Tag bestimmen auf tag.php

  • Gelöst toastbrot

    (@toastbrot)


    Ich möchte die Title Tags welche im Html ausgegeben werden selbst festlegen, für alle Seiten und Artikel habe ich es mittels „Custom Fields“ hinbekommen.
    Dazu habe ich den Code von dieser Seite übernommen:
    https://orbitingweb.com/blog/custom-seo-friendly-title-tags-wordpress/

    in meiner function.php steht nun

    /* OrbitingWeb custom title tag function */
    add_filter( 'document_title_parts', 'orweb_custom_title');
    function orweb_custom_title( $title ) {
    if ( ! is_singular() ) return $title;
    $custom_title = trim(get_post_meta( get_the_id(), 'title', true ));
    if( ! empty( $custom_title ) ){
    	$custom_title = esc_html( $custom_title );
    	$title['title'] = $custom_title;
    	}
    return $title;
    }
    function orweb_custom_title_old($title){
    if ( ! is_singular() ) return;
    $custom_title = trim(get_post_meta( get_the_id(), 'title', true));
    if( ! empty( $custom_title )  ){
    	$custom_title = esc_html( $custom_title );
    	$title = $custom_title;
    	}
    return $title;
    }
    add_filter('wp_title', 'orweb_custom_title_old', 10, 2);

    Allerdings wird auf den Schlagwort Seiten nichts angezeigt, nicht mal der fallback.
    Ich würde gerne auch auf den Schlagwort Seiten die möglichkeit haben den Title selbst zu bestimmen, was müsste ich hierfür an code haben?

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • The conditional tag is_singular() checks if a singular post is being displayed, which is the case when one of the following returns true: is_single(), is_page() or is_attachment().

    (Codex)

    In der ersten Zeile deiner beiden Funktionen orweb_custom_title() und orweb_custom_title_old() gibst du an, dass die Funktion abgebrochen werden soll, wenn nicht ein einzelner Beitrag, eine einzelne Seite oder eine einzelne Anhang-Seite abgerufen wird. Das macht auch Sinn, weil sonst das nachfolgende get_the_ID() nicht funktionieren kann – es gibt schließlich keine „Sammel-ID“ für Archive.

    Um nun über einen Filter das <title>-Tag auch für Archive (Kategorie, Schlagwort, Datum, …) etwas hinzuzufügen, stellt sich die Frage, wo diese Information herkommen soll. Wenn du ein eigenes Plugin entwickelst, kann das z.B. ein Optionswert sein.

    Allerdings stellt sich auch die Frage, ob du Archiv-Seiten überhaupt indexieren willst. Schließlich möchtest du das Suchmaschinen-Ranking nicht durch Duplicate Content verschlechtern?

    Hast du dir mal angeschaut, wie SEO-Plugins wie z.B. The SEO Framework arbeiten?

    Danke Bego Mario Garde, dass Du Dir die Zeit genommen hast mir zu helfen.

    Am liebsten hätte ich es wenn, ich ein Custom Field für die Eingabe des Titel-Tags verwenden könnte.

    Ich habe den Code nun so geändert, das zumindest der Standart Title-Tag verwendet wird. Das ist Besser als nichts.

    Für die Entwicklung eines Plugins reicht mein wissen nicht aus. Ich bastel nur an einem Theme rum.

    Das Duplicate Content Problem habe ich nicht, denn ich verwende die Tag-Seiten ausschließlich um Seiten (pages.php) anzuzeigen und dort die Auszüge welche sonst nicht verwendet werden und uniqe sind anzuzeigen, außerdem habe ich auf den Tag-Seiten jeweils noch ein Individuellen uniqe’en Text stehen. Danke für den Hinweis.

    Ich fürchte, du verwechselst da ein paar Dinge. Ich möchte nicht kleinlich sein oder dich besserwisserisch belehren. Da aber noch andere hier mitlesen, möchte ich das etwas gerade rücken:

    Sobald du deinen Beiträgen eine Kategorie oder ein Schlagwort hinzufügst, erstellt WordPress dafür automatisch eine Seite (z.B. https://example.com/category/hobbits oder https://example.com/tags/zauberei). Welches Template verwendet wird, hängt zum einen von der internen Template Hierarchie und zum anderen von den vorhandenen Templates ab.

    Chart Template Hierarchy

    Der Halbsatz „ich verwende die Tag-Seiten ausschließlich um Seiten (pages.php) anzuzeigen“ macht überhaupt keinen Sinn. Seiten (für deren Ansicht das Template pages.php verwendet wird) haben keine Tags oder Kategorien und die Tag- oder Kategorie-Archive verwenden nicht das Template pages.php.

    Die Zusammenfassung aller Beiträge einer Kategorie oder eines Tags ist auch kein eigenständiger Beitrag und kann deshalb kein Custom Field haben. Zum Verständnis: Custom Fields werden auch als „Post Meta“ bezeichnet, also als Meta-Angaben zu jeweils einem bestimmten Beitrag.

    Die WordPress-Funktion get_category() liefert allerdings ein Objekt, das du vielleicht für deine Zwecke verwenden kannst:

    
    <?php $thisCat = get_category(get_query_var('cat')); 
    var_dump($thisCat); 
    ?>
    
    stdClass Object
    (
        [term_id] => 85
        [name] => Category Name
        [slug] => category-name
        [term_group] => 0
        [term_taxonomy_id] => 85
        [taxonomy] => category
        [description] => 
        [parent] => 70
        [count] => 0
        [cat_ID] => 85
        [category_count] => 0
        [category_description] => 
        [cat_name] => Category Name
        [category_nicename] => category-name
        [category_parent] => 70
    )

    Die Entwicklung von Plugins ist keine Raketenwissenschaft und es macht sogar Spaß, eigene Plugins zu schreiben, wenn du erst einmal gemerkt hast, wie einfach du schon mit ein bisschen Code Dinge in WordPress ändern oder ergänzen kannst. Wenn dein Wissen für die Entwicklung eines Plugins aber nicht ausreicht und du da auch keinen Ehrgeiz hast, solltest du lieber ein Plugin wie The SEO Framework verwenden. Da steckt sehr viel Arbeit drin von jemand, der sich besser auskennt.

    Hey Danke für Deine Hilfe und das mitdenken an die Mitleser.

    Ich habe meinen WordPress Seiten (Pages.php), ermöglicht ebenfalls tags (Schlagworte) zu haben. Das ist kein Standart, ich weiß.

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Das Thema „Title Tag bestimmen auf tag.php“ ist für neue Antworten geschlossen.