Wenn Sie irgendeine Form sozialer Medien verwenden, insbesondere Twitter, dann sind Sie mit großer Wahrscheinlichkeit auf "Shortlinks" gestoßen - verkürzte URLs, die als Bezeichnung fungieren und auf eine bestimmte Seite verweisen, deren längere URL jedoch verschleiert wird. Sie gibt es seit über einem Jahrzehnt, aber ihre Nutzung begann mit URL-Verkürzungsdiensten, die Klickstatistiken und Zeichenlimits für Tweets bereitstellten.
WordPress hat einen eigenen "Shortlink", der den Namen standardmäßig nicht verdient. Dies sind die www.yoursite.com?p=1
Links, die auf einen einzelnen Beitrag verweisen, und Sie können sie über die Schaltfläche "Shortlink abrufen" im Bearbeitungsbildschirm Ihres Beitrags aufrufen.
Dafür gibt es einen guten Grund: WordPress wollte keinen speziellen Dienst eines Drittanbieters für die URL-Verkürzung und unter dem Standard festlegen www.yoursite.com?p=1
Shortlinks ist eine API, mit der Sie die URL durch eine wesentlich verkürzte URL eines anderen Dienstes - oder sogar Ihres eigenen - ersetzen können.
WordPress-Verknüpfungen werden jedoch nur in Posts angezeigt - nicht auf Seiten oder anderen Posttypen. In diesem kurzen Tipp zeige ich Ihnen, wie Sie dies korrigieren können. (Und auf ähnliche Weise können Sie den Standard-Shortlink vollständig von einem URL-Shortener-Dienst aus ändern.).
Öffnen Sie den Quellcode und suchen Sie den wp_get_shortlink ()
Funktion (siehe Codex) finden wir folgendes:
Funktion wp_get_shortlink ($ id = 0, $ context = 'post', $ allow_slugs = true) // Plugins können diese Funktion kurzschließen. $ shortlink = apply_filters ('pre_get_shortlink', false, $ id, $ context, $ allow_slugs); if (false! == $ shortlink) return $ shortlink;…
Der Haken pre_get_shortlink
, Daher können wir die Standardbehandlung von Shortlinks in WordPress umgehen. Dafür muss unser Plug-in nur an diesen Filter hängen und etwas anderes als "false" zurückgeben..
/ ** * Eine Funktion, die eine Shortlinks-Schaltfläche für den Posttyp 'portfolio' hinzufügt. * / Function wptuts_shortlinks_for_portfolio ($ shortlink, $ id, $ context) // Der Kontext kann eine Post / Blog / Meta-ID oder eine Abfrage sein $ post_id = 0; if ('query' == $ context && is_singular ('portfolio')) // Wenn der Kontext Abfrage ist, verwende das aktuell abgefragte Objekt für die ID $ post_id = get_queried_object_id (); elseif ('post' == $ context) // Wenn Kontext post ist, verwende die übergebene $ id $ post_id = $ id; // Nur etwas vom Portfolio-Post-Typ tun if ('portfolio' == get_post_type ($ post_id)) $ shortlink = home_url ('? P ='. $ Post_id); return $ shortlink; add_filter ('pre_get_shortlink', 'wptuts_shortlinks_for_portfolio', 10, 3);
Wenn Sie den Shortlink nicht ändern möchten (z. B. der falsche Beitragstyp), ist es wichtig, dass Sie zurückkehren $ shortlink
(der gefilterte Wert, der vom Hook an uns übergeben wurde) und nicht 'false', da sich andere Plug-Ins möglicherweise bereits geändert haben $ shortlink
- und wenn Sie false zurückgeben, würden Sie sie überschreiben.