WordPress: Wie wandle ich eine generierte URL (Permalink) in eine hübsche URL um?

Lesezeit: 3 Minuten

Benutzer-Avatar
sonnenseite

In einem Plugin generiere ich einen paginierten Link zu einer Kategorie,
dh http://localhost/?cat=17&paged=5. Die Kategorie ist durch Slug und ID bekannt.

Gibt es eine Möglichkeit, diese URL in das benutzerdefinierte Format “nice permalink” umzuwandeln,
dh http://localhost/category/foo/page/5?

(Angenommen, wir verwenden WordPress 2.8/2.9+)

Bearbeiten: Da es einige Missverständnisse darüber gibt, was ich zu erreichen versuche, hier ist, was ich habe:

  • Die Kategorie-ID
  • Die Seitenzahl (d. h. die fünfte Seite des Archivs dieser Kategorie)

Mit diesen Daten kann ich die URL zu dieser Seite erstellen, das wäre zum Beispiel http://localhost/?cat=17&paged=5, und das funktioniert gut. Das Problem ist visueller Natur: Wenn der Benutzer hübsche Permalinks aktiviert hat, dann passt das nicht sehr gut. Die Frage ist: Wie bekomme ich den richtigen, hübschen Permalink (dh http://localhost/category/foo/page/5) von (oder für) die Informationen, die ich habe?

Bearbeiten 2: Offensichtlich, wenn ein Benutzer hübsche Permalinks hat deaktiviert, dann gibt es keine hübschen Permalinks. Das weiß ich, und das ist wirklich nicht Gegenstand der Frage … Nehmen wir für den Moment einfach an, der Benutzer hat eine willkürlich Permalink-Einstellung. Ich generiere einen Link, und er sollte so aussehen, wie der Benutzer es möchte.

  • Können Sie diese nicht einfach im Permalink-Optionsfeld ändern? Wenn Sie „Benutzerdefiniert“ auswählen und /%postname%/ eingeben, wird dies ähnlich wie bei Ihnen generiert, es sei denn, dieses Plugin ändert die URLs irgendwie?

    – Martin

    22. März 2010 um 10:55 Uhr

  • Ich fürchte, ich komme nicht auf den Punkt. Mein Plugin weiß nichts über die vom Benutzer eingestellte Permalink-Struktur. Im Moment kann ich die Seite, zu der ich einen Link erstelle, nur über die Kategorie-ID und die Seitennummer ansprechen. Was ich suche, ist eine Art Filter, der diese generierte URL in die vom Benutzer konfigurierte Struktur ändert.

    – Sonnenseite

    22. März 2010 um 17:55 Uhr

  • Es gibt eine Einstellung in der Verwaltung->Einstellungen->Permalinks

    Benutzer177800

    22. März 2010 um 18:26 Uhr

  • @fuzzy lollipop: Ich kenne diese Einstellung und das möchte ich erreichen. Nun stellt sich die Frage: Wie macht WordPress das, wo steckt die Magie und wie kann ich sie für mich (missbrauchen)? 🙂

    – Sonnenseite

    23. März 2010 um 15:11 Uhr

Hast du dir die angeschaut WP_Rewrite?

  • Ja, aber ich bin mir nicht sicher, wie ich es für diese Aufgabe verwenden soll.

    – Sonnenseite

    23. März 2010 um 14:55 Uhr

  • Kennen Sie Beispiele, wie Sie WP_Rewrite für diesen Zweck verwenden können? Alles, was ich finden kann, ist, wie man neue Permalink-Tags usw. hinzufügt. (Der Codex ist die meisten wieder nützlich …)

    – Sonnenseite

    23. März 2010 um 15:17 Uhr

  • Entschuldigung, aber ich habe es auch nicht benutzt. Ich habe noch etwas im Codex herumgestöbert und bin auf die Rewrite-API gestoßen, vielleicht hilft das? codex.wordpress.org/Rewrite_API

    – Manzabar

    24. März 2010 um 13:20 Uhr

  • Leider nicht. Soweit ich weiß, funktioniert es umgekehrt, sodass ein “netter” Permalink in $_GET-Variablen geparst werden kann. Vielen Dank aber!

    – Sonnenseite

    25. März 2010 um 11:34 Uhr

Tut All-in-One-SEO erfüllen Ihre Anforderungen? Ich habe tatsächlich die “Pro”-Version für etwa 30 USD gekauft und es hat sich gelohnt.

  • Leider nicht. Es scheint keine URLs umzuschreiben.

    – Sonnenseite

    23. März 2010 um 15:08 Uhr

Meine WordPress-Installation (2.9.2) macht das automatisch – kanonische URLs sind seit einiger Zeit in WordPress eingebaut. Vielleicht ist Ihr Plugin Deaktivieren dieser Funktion?

  • Nein, definitiv nicht. (Wenn Sie hinzufügen <?php echo 'http://localhost/?cat=17&paged=5'; ?> – oder einen ähnlichen Link – irgendwo in Ihrem Thema sehen Sie das Problem.)

    – Sonnenseite

    23. März 2010 um 15:05 Uhr

  • Ich habe das gerade mit meinem Theme ausprobiert, und WordPress hat die URL richtig interpretiert und mich gemäß meinen Permalink-Einstellungen auf die richtige Seite weitergeleitet. Verwenden Sie 2.9.2?

    – Schiffsform

    24. März 2010 um 1:38 Uhr

  • Vielleicht verstehe ich Ihr Problem falsch – wenn Sie die URL nur als Zeichenfolge wiedergeben, wird WordPress nichts damit anfangen. Aber wenn Sie es zu einem Link machen und darauf klicken, sollten Sie auf die richtige Seite weitergeleitet werden.

    – Schiffsform

    24. März 2010 um 1:43 Uhr

  • Die Umleitung ist nicht das Problem, das Problem ist die Tatsache, dass es hässlich aussieht. 🙂

    – Sonnenseite

    2. Mai 2010 um 22:25 Uhr

  • Setzen Sie die gewünschte Seitenzahl in eine Variable namens $pagenumber und versuchen Sie Folgendes: “>Category Link

    – Schiffsform

    2. Mai 2010 um 23:38 Uhr

Benutzer-Avatar
jtlowe

Ich vermute, Sie haben es bereits herausgefunden, aber ich wollte es nur für andere veröffentlichen. Ich glaube ich verstehe deine Situation. Wenn ich Ihre Frage richtig gelesen habe, gilt das Ändern der Admin-Permalink-Einstellungen nicht.

Sie können die Kategorie-ID dann verwenden get_category_link() Funktion, um den ‘hübschen’ Permalink zu erhalten. Fügen Sie dann die Paginierung an das Ende an.

Sie könnten den Permalink auflösen, um die Kategorie-ID und die Paginierungsnummer zu erhalten, und dann den obigen Schritt verwenden, um sie zusammenzusetzen.

Ist es das, wonach Sie gesucht haben?

Der richtige Weg, um den Link zu generieren, wäre zu verwenden get_category_link und add_query_arg

In deinem Beispiel würde folgendes funktionieren:

$category_link = add_query_arg( array('paged' => 5), get_category_link($category->term_id));

Dadurch wird die URL generiert und WordPress leitet auf die richtige Seite weiter.

Schauen Sie sich diese Seite an, sie erklärt ziemlich gut Permalinks.
http://codex.wordpress.org/Using_Permalinks

Sie sollten diese Einstellungen in finden

WordPress->Einstellungen->Permalinks

Ich finde

/%category%/%postname%

in die Richtung, was Sie wollen

Sie können auch versuchen, Ihre URL mit htaccess umzuleiten, hier sind einige Beispiele:

[http://]perishablepress.com/press/2008/02/06/permalink-evolution-customize-and-optimize-your-dated-wordpress-permalinks/

Sorry darf bis jetzt nur ein Link posten pfft… 🙁

Mit freundlichen Grüßen Mahatmanich

1178870cookie-checkWordPress: Wie wandle ich eine generierte URL (Permalink) in eine hübsche URL um?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy