WordPress Theme erweitern und programmieren
WordPress & Co

Immer auf den neuesten Beitrag deines Blogs weiterleiten

Ich schreibe ja jeden Tag einen neuen Beitrag und natürlich will ich die LeserInnen aus den sozialen Netzwerken auch auf meinen Blog aufmerksam machen. Das ist bei den meisten mit dem Permalink auch gar kein Problem. Nur Instagram macht da ein wenig Sorgen, denn hier funktioniert die Verlinkung in der Bildbeschreibung nicht. Die übliche Formulierung wie Link in der Bio ist zwar praktisch, doch ich muss jeden Tag den Link im Profil ändern. Oder so wie ich einfach nur auf den Blog verweisen. Alles ist nicht so ideal. Besser wäre es, wenn wir eine URL hätten wie zum Beispiel https://the-magical-digital-nomad.com/aktueller-beitrag und die leitet die LeserInnen immer auf den wirklich aktuellsten Beitrag weiter.

Ein wenig Vorbereitung ist jetzt notwendig, doch das kennst du schon. Bevor wir etwas an unserem Theme verändern machen wir uns eine Sicherheitskopie oder noch besser wir arbeiten nur am Child-Theme. Nur da schadet eine Sicherheitskopie auch nicht. Und wenn du noch keines hast, kannst du in diesem Post nachlesen, wie das einfach und schnell angelegt wird.

Und für den Rest brauchst du nur die functions.php deines Themes und fügst am Ende der Datei die folgenden Zeilen ein.

//Leite zum aktuellesten Post weiter
function tmdn_redirect_latest_post($query) {
  $slug = array('aktueller-post', 'latest', 'juengster-post', 'neuester-post', 'aktueller-beitrag', 'neuer-beitrag');
  $doRedirect = false;

  if (isset($query->query_vars['pagename']) && in_array($query->query_vars['pagename'], $slug)) {
    $doRedirect = true;
  } elseif (isset($query->query_vars['name']) && in_array($query->query_vars['name'], $slug)) {
    $doRedirect = true;
  }
  if ($doRedirect) {
    $latest = get_posts(array('posts_per_page'   => 1,
                              'post_type'        => 'post',
                              'orderby'          => 'date',
                              'order'            => 'desc',
                              'suppress_filters' => false,
                              'no_found_rows'    => true));
    if (is_array($latest) && !empty($latest)) {
      $latest = array_shift($latest);
      $dest = get_permalink($latest->ID);
      if (!$dest) {$dest = user_trailingslashit(home_url());}
      wp_redirect($dest, 302); // Not validating in case other plugins redirect elsewhere
      exit;
    }  
  }
}
add_action('parse_request', 'tmdn_redirect_latest_post');

Das it jetzt vielleicht ein wenig schwieriger zu verstehen und ich langweile dich gar nicht mit den Details. Für dich ist eigentlich nur die Zeile mit der #3 interessant. In der Klammer sind einzelne Strings (das ist der Text in den einfachen Anführungszeichen) aufgelistet. Diese Texte sind die URLs (Permalinks) welche zum aktuellsten Beitrag weitergeleitet werden. Du kannst weitere mit Kommas getrennt anfügen oder auch die bestehenden ändern.

Sobald du dann deine erweitere functions.php (deine Themefunktionen) auf deinen Webspace übertragen hast, kannst du loslegen. Oder probier es hier bei mir, ich habe zum Beispiel auch https://the-magical-digital-nomad.com/latest/ in Verwendung.

1 Kommentar
  1. Aprilia
    Aprilia
    23. September 2020 um 18:55

    super lösung! danke für das sharen, gibt es eine einfache möglichkeit, dass das link immer nur auf den letzten beitrag in einer sprache geht (wenn seite mehrsprachig ist?)

    Antworten
Hinterlasse eine Antwort

Deine eMail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit * markiert.