Hübschere Shortlinks für WordPress

WordPress erstellt standardmäßig für alle Inhalte einer Seite sogenannte Shortlinks. Das sind kurze URLs, die sich zu den langen Artikel-URLs auflösen lassen. Leider sind diese Shortlinks mehr als unansehnlich - im Normalfall haben sie die Form "http://example.com/?p=1234". Um das ganze ein wenig hübscher zu gestalten, habe ich ein kleines Plugin geschrieben und dazu meinem NGINX eine Rewrite-Regel spendiert.

Zuerst einmal das Plugin. Es macht im Grunde nichts weiter, als den Shortlink zu nehmen, und darin den Anteil "/?p=" durch "/@" zu ersetzen. Dadurch erhält man die URL "http://example.com/@1234". Mit dieser kann ich schon bedeutend besser leben.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
  /*
    Plugin Name: CustomShortlink
    Plugin URI: https://weizenspr.eu/
    Description: Changes shortlinks from /?p=<id> to /@<id>
    Version: 0.1c1
    Author: Kevin Niehage
    Author URI: https://weizenspr.eu/
  */


  define("CUSTOM_SHORTLINK_NEW_PREFIX", "/@");
  define("CUSTOM_SHORTLINK_OLD_PREFIX", "/?p=");

  /* STOP EDITING HERE IF YOU DO NOT KNOW WHAT YOU ARE DOING */

  // structure taken from https://core.trac.wordpress.org/browser/tags/3.9/src/wp-includes/link-template.php
  function custom_shortlink_filter($shortlink) {
    return str_replace(home_url(CUSTOM_SHORTLINK_OLD_PREFIX),
                       home_url(CUSTOM_SHORTLINK_NEW_PREFIX),
                       $shortlink);
  }

  add_filter("get_shortlink", "custom_shortlink_filter");
?>

Anschließend musste ich meinem NGINX nur noch beibringen, was er bei der entsprechenden URL tun soll - nämlich einfach auf die ursprüngliche URL umleiten.

1
2
  # handle shortlink
  rewrite ^\/\@(.*)$ /?p=$1 last;

Mit diesen einfachen Schritten hat man individuellere Shortlinks. 🙂

Kurze Grüße, Kenny

Schreibe einen Kommentar

Um Ihnen beim weiteren Kommentieren auf dieser Webseite die erneute Eingabe Ihrer Daten zu ersparen, wird beim Absenden Ihres Kommentars ein Cookie an Ihren Browser gesendet und von diesem gespeichert. Mit dem Absenden eines Kommentars auf dieser Webseite stimmen Sie der Speicherung und Übertragung dieses Cookies explizit zu.

Pflichtfelder sind mit * markiert.