webentwicklung-frage-antwort-db.com.de

Müssen Sie beim Aufruf von wp_title () eine Art "title.php" -Datei erstellen?

... oder behandelt wp_title() bereits die verschiedenen Kontexte in Ihrem Blog?

Dies könnte für mich klarstellen, wie ich eine wiederverwendbare index.php-Datei erstellen kann, ohne dass alle bedingten Anweisungen enthalten sind, um die verschiedenen Titelformate im gegebenen Kontext (Seite, einzeln, Beiträge, Suche, Archiv, Datum usw.) zu behandeln.

Ebenfalls,

Könnte ein bestimmter Beitrag oder eine bestimmte Seite eine spezielle benutzerdefinierte Formatierung aufweisen, ohne den Rest der Anwendungsfälle zu beeinträchtigen? ( Wenn dies in einer separaten Frage sein muss, lassen Sie es mich bitte wissen - es ist eng mit dieser Frage verbunden, so dass ich dachte, ich würde es hier für jetzt zusammenführen ).

2
bigp

Das Template-Tag wp_title() gibt some kontextbasiert aus. Aus dem Kodex:

Der Titeltext hängt von der Abfrage ab:

Einzelne Post oder eine Seite

  • der Titel des Beitrags (oder der Seite)

Datumsbasiertes Archiv

  • das Datum (z. B. "2006", "2006 - Januar")

Kategorie

  • der Name der Kategorie

Autorenseite

  • der öffentliche Name des Benutzers

Wenn Sie eine spezifischere kontextbezogene Ausgabe hinzufügen müssen, können Sie den wp_titleFilter Hook verwenden, um die Ausgabe zu ändern.

Wenn Sie der Ausgabe beispielsweise den Site-Namen voranstellen möchten:

<?php
function mytheme_filter_wp_title( $title ) {
    // Get the Site Name
    $site_name = get_bloginfo( 'name' );
    // Prepend it to the default output
    $filtered_title = $site_name . $title;
    // Return the modified title
    return $filtered_title;
}
// Hook into 'wp_title'
add_filter( 'wp_title', 'mytheme_filter_wp_title' );
?>

Nehmen Sie ein Beispiel von der Codex-Seite, und sagen Sie, Sie möchten das Site-Beschreibung an die Titelausgabe anhängen, wenn Sie sich auf der Site-Startseite befinden:

<?php
function mytheme_filter_wp_title( $title ) {
    // Get the Site Name
    $site_name = get_bloginfo( 'name' );
    // Prepend name
    $filtered_title = $site_name . $title;
    // If site front page, append description
    if ( is_front_page() ) {
        // Get the Site Description
        $site_description = get_bloginfo( 'description' );
        // Append Site Description to title
        $filtered_title .= $site_description;
    }
    // Return the modified title
    return $filtered_title;
}
// Hook into 'wp_title'
add_filter( 'wp_title', 'mytheme_filter_wp_title' );
?>

Passen Sie dies Ihren Bedürfnissen an.

Falls es nicht offensichtlich ist, gehören diese Filterrückrufe in functions.php.

EDIT

Vermisst dies:

Könnte ein bestimmter Beitrag oder eine bestimmte Seite eine spezielle benutzerdefinierte Formatierung aufweisen, ohne den Rest der Anwendungsfälle zu beeinträchtigen?

Das ist durchaus möglich. Tatsächlich funktionieren die meisten SEO-Plugins so.

Hier ist die Sache mit dem wp_title-Filter zur Steuerung der wp_title()-Ausgabe: Sie haben die Fähigkeit eingebaut, gut mit SEO-Plugins und allem anderen zu spielen, das versucht, wp_title()-Inhalt zu ändern , ohne dass zusätzliche Codeänderungen erforderlich sind.

3
Chip Bennett

Korrigieren Sie mich, wenn ich falsch liege, aber ich glaube nicht, dass es eine "saubere" Art gibt, Titel ohne Verwendung von Bedingungen zu erstellen. In Bezug auf den Seitentitel können Sie ein benutzerdefiniertes Metafeld erstellen und bei der Ausgabe Ihres Titels überprüfen, ob es vorhanden ist.

0
Joseph Leedy