it-swarm.com.de

Benötigen Sie Hilfe mit benutzerfreundlichen URLs in Wordpress

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

Derzeit sieht meine URL folgendermaßen aus: http://www.meinewebsite.de/designer/?id=43&name=designer+name

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

Ich würde das wirklich gerne nutzen: http://www.meinewebsite.de/designer/designer+name/

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

Meine .htaccess-Datei sieht folgendermaßen aus:

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

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

Ich habe zwei Fragen:

  1. Gibt es irgendeinen Grund, die obige URL in Bezug auf SEO zu ändern
  2. Wie kann ich die "hübsche" URL erhalten?

UPDATE
Ich füge weitere Informationen zur Verdeutlichung hinzu.

  • Ich entwickle die Seite selbst
  • Die Vorlage ist zu 100% benutzerdefiniert
  • Basierend auf Informationen aus $ _GET lade ich Daten aus meiner benutzerdefinierten DB-Tabelle und zeige diese auf Seite an
  • Meine Website hat durchschnittlich zwischen 3-400 einzelne Besucher pro Tag. In der Spitze habe ich 2000 einzelne Besucher pro Tag.
  • Ich entwickle ein Online-Modemagazin
  • Meine URL wird derzeit folgendermaßen erstellt:

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

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

Die Verwendung des benutzerdefinierten Post-Typs war eine Option, die ich in Betracht gezogen habe, aber ich brauchte eine eigene Tabellenstruktur, da Designer/Marken mit Galerien verknüpft sind (und weitere Links zu zukünftigen Tabellen). Das Speichern von Markendaten in der Tabelle WP POST hat also nicht funktioniert.

Also muss ich das wissen:

  • Was muss ich mit meiner Permalink-Struktur machen?
  • Was muss ich mit meiner .htaccess-Datei machen?
5
Steven

Ich weiß (oder wusste) nicht viel über die Umschreiberegeln selbst (aber es scheint, niemand tut es ), aber basierend auf einigen anderen Antworten hier habe ich dies zum Laufen gebracht. Wir fügen eine neue Umschreiberegel hinzu, die mit designers/designer_name/ übereinstimmt. Wir "leeren" die Umschreiberegeln, damit sie in der Datenbank gespeichert werden, aber stellen Sie sicher, dass Sie dies nur einmal tun, da dies eine teure Operation ist. Jetzt richten wir ein Muster ein, das mit unserer Seite übereinstimmt, und speichern den zusätzlichen Teil in der Abfragevariablen designer_name. Da WordPress nicht weiß, dass es auf diese Variable schauen muss, schließen wir uns dem query_vars-Filter an und weisen es an, dies ebenfalls zu sehen.

Jetzt können wir in der page-designers.php-Designdatei get_query_var('designer_name') ausführen und geben Ihnen den Designernamen. Wenn Sie zusätzliches Material wie Paging (designer/designer_name/page/2) möchten, müssen Sie eine zusätzliche Umschreiberegel für dieses (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;
}
4
Jan Fabry

Zuerst habe ich eine Frage: Wie erhält man URLs, die wie folgt aussehen?

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

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

Über .htaccess

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

Informationen zu führenden Kategorien in WordPress-URLs

Als nächstes ist Ihr gewünschtes URL-Format mit dem Kategorienamen im ersten Pfadsegment ein Muster, das die WordPress-Community aus Leistungsgründen verpönt, siehe dies:

Grundsätzlich ist das Problem, wenn Sie mehr als eine Handvoll für "Pages" (d. H. $post->post_type=='page') haben, dann vergleicht WordPress jede URL für jede geladene Seite mit der URL für jede Seite und das kann Ihr System verlangsamen. Das heißt, wenn Sie nur eine Handvoll Seiten haben und keine stark frequentierte Website, ist es meine Meinung, dass Sie nicht ins Schwitzen kommen.

 Screenshot showing what Pages in WordPress are, i.e. $post_type=='page' 
(Quelle: mikeschinkel.com )

Nun zu deinen Fragen.

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

Ja. Wenn Sie die URL bereinigen, werden Ihre Keyword-Dichten verbessert. Das heißt, meiner Meinung nach hat SEO viel mehr zu bieten als nur das, was die Suchmaschine sieht. Wenn Sie Ihre URLs freundlicher gestalten, wird das Vertrauen der Menschen gestärkt und die Wahrscheinlichkeit erhöht, dass sie in Blogs auf Ihre Website verlinken und diese teilen Ihre Links auf Twitter, in Facebook und anderswo. Das schafft zwei Vorteile; Weitere Links, die die Suchmaschinen sehen, und mehr Aufmerksamkeit durch das Teilen.

Persönlich stelle ich mir das gerne so vor, wie man sich kleidet. Wenn Sie wirklich chaotisch sind, werden die Leute eine niedrigere unterbewusste Meinung über Sie haben, als wenn Sie akribisch sind. Ich denke, dasselbe gilt für URLs. Wenn Sie saubere, benutzerfreundliche URLs haben, scheint Ihr Haus in Ordnung zu sein. Wenn Sie schlampige URLs haben, wird Ihre Site einfach nicht gleich "fühlen", wieder IMO. (Böse URLs sind ein Grund, warum ich LinkedIn nicht mag. Ich denke, sie wären erfolgreicher gewesen, wenn sie auf URLs geachtet hätten, wie zum Beispiel Twitter.)

2.) Wie kann ich die "hübsche" URL bekommen?

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

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 wird dieser Screenshot ausreichen, um zu veranschaulichen, was Sie tun müssen:

 Screenshot showing how to Set Permalinks in WordPress 
(Quelle: mikeschinkel.com )

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

Andere Permalink Antworten

Außerdem gibt es viele andere Antworten auf Fragen zu Permalinks in WordPress hier bei WordPress Answers; Einige davon könnten auch für Sie hilfreich sein, und zwar in unbestimmter Reihenfolge:

3
MikeSchinkel

Ich habe alles getan, was Jan Fabry schrieb, aber als ich anrief:

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

Wordpress leitet mich weiter (301) an:

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

Meine Regel ist (durch eine "Init" -Aktion aufgerufen):

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% auf %postname% und scheint zu funktionieren.

0
Merlinox