Brauchen Sie Hilfe mit freundlichen URLs in WordPress

Ich erstelle einige benutzerdefinierte Vorlagen in WordPress und ich übergebe einige Daten in den URLs.

Derzeit sieht meine URL wie folgt aus: http://www.mysite.com/designers/?id=43&name=designer+name

Die URL enthält die Designer-ID und den Designer-Namen.

Ich würde das gerne benutzen: http://www.mysite.com/designers/designer+name/

Meine Permalink-Struktur ist auf /%category%/%postname%/

Meine .htaccess Datei sieht so aus:

 # BEGIN WordPress  RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]  # END WordPress 

Ich habe mir http://codex.wordpress.org/Using_Permalinks angesehen , werde aber nicht klüger.

Ich habe zwei Fragen:

  1. Ist es sinnvoll, die obige URL in Bezug auf SEO zu ändern?
  2. Wie kann ich die “hübsche” URL erhalten?

AKTUALISIEREN
Ich füge weitere Informationen zur Erläuterung hinzu.

  • Ich entwickle die Seite selbst
  • Die Vorlage ist eine 100% benutzerdefinierte Vorlage
  • Basierend auf Informationen aus $ _GET lade ich Daten aus meiner benutzerdefinierten DB-Tabelle und zeige diese auf der Seite an
  • Meine Website hat eine durchschnittliche Besucheranzahl von 3-400 Besuchern pro Tag. In der Spitze habe ich 2000 einzigartige Besucher pro Tag.
  • Ich entwickle ein Online-Modemagazin
  • Meine URL wird gerade wie folgt erstellt:

    Url = get_permalink().'?bid='.$brand->id.'&name='.$brand->name;

  • Ich habe hier eine ähnliche Methode verwendet:
    http://storelocator.no/search/?brandID=4673&storeID=0&brand=Moods+of+Norway

Die Verwendung von Custom Post Type war eine Option, die ich in Betracht gezogen habe, aber ich brauchte meine eigene Tabellenstruktur, weil Designer / Marken mit Galerien verbunden sind (und mehr Links zu anderen Tabellen). Das Speichern von Markendaten in der WP POST-Tabelle würde also nicht funktionieren.

Also muss ich das wissen:

  • Was muss ich mit meiner Permalink-Struktur tun?
  • Was muss ich mit meiner .htaccess-Datei tun?

Solutions Collecting From Web of "Brauchen Sie Hilfe mit freundlichen URLs in WordPress"

Ich weiß (oder wusste es nicht) viel über die Rewrite-Regeln selbst (aber es scheint, dass niemand es tut ), aber basierend auf einigen anderen Antworten, habe ich das zur Arbeit gebracht. Wir fügen eine neue Rewrite-Regel hinzu, die mit designers/designer_name/ übereinstimmt. Wir “spülen” die Umschreibregeln, damit sie in der database gespeichert werden, aber stellen Sie sicher, dass Sie dies nur einmal tun, da dies ein teurer Vorgang ist. Jetzt richten wir ein Muster ein, das unserer Seite entspricht, und speichern das zusätzliche Teil in der Abfragevariablen designer_name . Da WordPress nicht weiß, dass es sich diese Variable ansehen muss, haken wir uns in den query_vars Filter ein und sagen ihm, dass er sich das auch ansehen soll.

Nun können wir in der get_query_var('designer_name') page-designers.php get_query_var('designer_name') und erhalten den Namen des Designers. Wenn Sie zusätzliche functionen wie Paging ( designer/designer_name/page/2 ) benötigen, müssen Sie eine zusätzliche Rewrite-Regel dafür (oder Feeds oder was auch immer mit designer/designer_name beginnt) hinzufügen. Aber das grundlegende Zeug sollte funktionieren.

 < ?php /* Plugin Name: WPA 3537 Plugin URI: http://wordpress.stackexchange.com/questions/3537/need-help-with-friendly-urls-in-wordpress Description: Need help with friendly URL's in WordPress Version: 1.0 Author: Jan Fabry */ register_activation_hook(__FILE__, 'wpa3537_flush_rules'); function wpa3537_flush_rules() { add_rewrite_rule('designers/([^/]+)', 'index.php?pagename=designers&designer_name=$matches[1]', 'top'); flush_rewrite_rules(false); } add_filter('query_vars', 'wpa3537_query_vars'); function wpa3537_query_vars($query_vars) { $query_vars[] = 'designer_name'; return $query_vars; } 

Zuerst habe ich eine Frage: Wie bekommen Sie URLs, die wie folgt aussehen?

 http://www.mysite.com/designers/?id=43&name=designer+name 

Dies sind keine Standard-URLs für WordPress. Ist die Art und Weise, wie Sie sich vorstellen, sollte funktionieren, oder funktioniert Ihre Website tatsächlich so? Und wenn ja, wie sind diese URLs entstanden? Ist es eine stark angepasste Website? Wer hat es angepasst? Sie oder jemand anderes?

Über .htaccess

Das heißt, wir beginnen mit .htaccess , um das aus dem Weg zu .htaccess . Deines ist identisch mit praktisch jeder anderen WordPress-Installation .htaccess Datei mit Ausnahme von Installationen, die 1.) ein URL-Unterverzeichnis bedienen (und dann ist der Unterschied trivial) , 2.) Leute gehabt haben, die nicht verstehen, wie WordPress URLs routet sie und / oder 3.) außer für diese seltenen fortgeschrittenen Installationen, die tatsächlich .htaccess mucking benötigen (und wenn Sie nicht wissen, warum Sie es tun müssten, sind die Chancen fast 100%, die Sie nicht haben.)

Über führende Kategorien in WordPress-URLs

Als nächstes ist das gewünschte URL-Format mit dem Kategorienamen im ersten Pfadsegment ein Muster, das die WordPress-Community aus Performancegründen missbilligt.

  • Kategorie in Permalinks als schädlich angesehen

Grundsätzlich ist das Problem, wenn Sie mehr als eine Handvoll für “Pages” haben ( $post->post_type=='page' ), dann vergleicht WordPress jede URL für jede Seitenladung mit der URL für jede Seite und das kann Ihre $post->post_type=='page' verlangsamen System. Das heißt, wenn Sie nur eine Handvoll Pages haben und keine hoch frequentierte Seite haben, ist es meiner Meinung nach nicht zu schwitzen.

Screenshot der Seiten in WordPress, d. H. $ Post_type == 'page'

Nun zu deinen Fragen.

1.) Ist es sinnvoll die obige URL in Bezug auf SEO zu ändern?

Ja. Bereinigung der URL verbessert die Keyword-Dichte. Das heißt, meiner Meinung nach gibt es bei SEO viel mehr als nur das, was die Suchmaschine sieht, und indem du deine URLs freundlicher machst, gibst du ihnen mehr Vertrauen und es wird wahrscheinlicher, dass sie deine Seite in Blogs verlinken und deine Links auf Twitter teilen , in Facebook und anderswo. Das schafft zwei Vorteile; mehr Links, die die Suchmaschinen sehen und mehr Sichtbarkeit durch das Teilen.

Persönlich denke ich daran, wie man sich kleidet; Wenn Sie wirklich chaotisch sind, werden die Leute eine unterbewusste Meinung von Ihnen haben, als wenn Sie genau sind. Ich denke, das gilt auch für URLs. Wenn Sie saubere, benutzerfreundliche URLs haben, scheint Ihr Haus in Ordnung zu sein. Wenn du schlampige URLs hast, wird deine Seite einfach nicht gleich ” fühlen , wieder IMO. (Böse URLs sind ein Grund, warum ich es verabscheue, LinkedIn zu verwenden. Ich denke, sie wären erfolgreicher gewesen, wenn sie beispielsweise auf Twitter wie Twitter geachtet hätten.)

2.) Wie bekomme ich die “hübsche” URL?

Ich denke, dieser Artikel und / oder diese Seite auf Codex sollte helfen können?

  • WordPress Permalinks optimieren

  • Einstellungen Permalinks SubPanel (auf Codex)

Grundsätzlich müssen Sie Ihre Permalinks-Vorlage festlegen und dann speichern. Möglicherweise müssen Sie FTP verwenden, um die Berechtigungseinstellungen für .htaccess zu ändern, bevor WordPress sie für Sie speichern kann. Hoffentlich reicht dieser Screenshot aus, um zu verdeutlichen, was Sie tun müssen:

Screenshot, wie Permalinks in WordPress gesetzt werden

Lassen Sie mich wissen, ob dies Ihre Frage beantwortet und wo Sie nicht stecken bleiben.

Andere Permalink-Antworten

Darüber hinaus gibt es viele weitere Antworten auf Fragen zu Permalinks in WordPress hier bei WordPress Answers; einige davon könnten dir auch helfen, in keiner bestimmten Reihenfolge:

  • Einrichten von WordPress mit benutzerdefinierten Permalinks und keine .htaccess-Datei?

  • WordPress überschreibt die GET-Variablen (page_id), die in HTACCESS?

  • Minimale benutzerdefinierte Permalink-Struktur?

  • Benutzerdefinierte Beitragstyp-Rewrite-Regel für Author & Paging?

  • 301 Redirects für Post-, Page-, Category- und Image-URLs erstellen?

  • Erzwingen Sie, dass die Website-URL “www” enthält und Großbuchstabe ist?

Ich habe alles, was Jan Fabry geschrieben hat, aber wenn ich anrufe:

 http://www.mysite.com/customPostTypeSlug/page/id 

WordPress Weiterleitung (301) mich zu:

 http://www.mysite.com/customPostTypeSlug/page 

Meine Regel ist (aufgerufen durch eine “init” -Aktion):

 add_rewrite_rule( 'customPostTypeSlug/page/([^/]+)/?' , 'index.php?customPostTypeSlug=page&id=$matches[1]', 'top' ); 

Dann spüle ich es.

Ich ändere den Permalink von %category%/%postname% nach %postname% und scheint zu funktionieren.