it-swarm.com.de

Titel nur in dynamischer Seite ändern

Ich habe versucht, den Titel auf einer dynamischen Seite ohne Glück zu ändern.

Ich habe zwei Seitenvorlagen erstellt, aus denen ich Elemente (Gelegenheiten) aus einer externen Datenbank lade. In einer Seitenvorlage lade ich die Gelegenheit einer einzelnen Seite:

<?php include 'Occasions-files/single.php';?>

Und die zweite Seitenvorlage lade ich im Überblick über die Anlässe:

<?php include 'Occasions-files/file.php';?>

Jetzt ist der Titel vom SEO-Plugin voreingestellt. Ich habe sowohl All-in-One-SEO als auch Yoast-SEO ausprobiert, kann den Titel jedoch nicht überschreiben. Was ich möchte, ist, den Titel von single.php in den Anlassnamen zu ändern, aber alle anderen Seiten dem SEO-Plugin zu überlassen.

Ich bin nicht ganz erfahren damit und ich bin nicht sicher, wo ich anfangen soll. Zu Testzwecken habe ich versucht, den Test manuell vor get_header zu stellen. Dann wird der manuell hinzugefügte Titel angezeigt, aber mein Header ist durcheinander. Wenn ich den Titel nach get_header setze, wird der Header in Ordnung geladen, aber der Titel wird nicht angezeigt und ist immer noch Standard

<title>test</title>
<?php get_header(); ?>

Ich habe auch versucht, einen Filter (in die functions.php) einzufügen, aber dies war auch ohne Ergebnisse oder vielleicht habe ich keine Ahnung, wie man es einfügt ..?

function custom_title_function($custom_title) {
$custom_title['title'] = "Test Title";
return $custom_title; }
add_filter( 'document_title_parts', 'custom_title_function' );

Hat jemand eine Idee, wie man das löst? Vielen Dank im Voraus!

1
Ptrckk

Nur um sicherzugehen, sieht das Title-Tag in Ihrem <head>-Bereich (vermutlich in der header.php) so aus?

<title><?php wp_title(); ?></title>

Es muss so sein, damit Yoast damit arbeiten und Titel überschreiben kann.

Wie auch immer, wenn Sie dies zu Ihrer single.php hinzufügen (oder zumindest bevor get_header() für diese Seite ausgeführt wird), sollten Sie in der Lage sein, den Seitentitel zu ändern:

function custom_page_title( $title ){
    $return = $title;

    // You can check what the current post is via $wp_query->post
    global $wp_query;
    if( isset($wp_query->post) ){
        $id = $wp_query->post->ID;
        $post_title = $wp_query->post->post_title;
        // etc

        $return = $post_title;
    }

    // Or just outright change the title
    $return = 'test';

    return $return;
}
add_filter('wp_title', 'custom_page_title', 20);

Wenn Sie Yoast verwenden, müssen Sie außerdem sicherstellen, dass diese Funktion ausgeführt wird, nachdem Yoast den Titel geändert hat. Andernfalls überschreibt Yoast alle von Ihnen vorgenommenen Änderungen. Hier kommt der 20 als dritter Parameter in add_filter() ins Spiel. Ich denke, Yoast führt seinen Filter mit 15 aus. Wenn Sie also Ihren Filter mit 20 (oder einer höheren Zahl als 15) ausführen, wird sichergestellt, dass Ihr Filter nach Yoasts Filter ausgeführt wird.

1
James