Ist es möglich, die URL für den regulären Beitragstyp zu ändern, ohne die URL anderer benutzerdefinierter Beitragstypen zu beeinflussen?

9

Das Dilemma

Ich habe einige benutzerdefinierte Beitragstypen:

  • Portfolio-Artikel
  • Referenzen
  • FAQs

Die URL-Strukturen für diese benutzerdefinierten Beitragstypen sind:

  • mysite.com/ Portfolio / name-of-custom-post
  • mysite.com/ Testimonial / Name des benutzerdefinierten Beitrags
  • mysite.com/ faq / name-of-custom-post

Ich möchte den normalen, integrierten WordPress-Beitragstyp verwenden, um unsere Blogeinträge zu steuern, und die URL für jeden Blogeintrag wie folgt lauten:

  • mysite.com/ Blog / name-of-post

Wenn ich zu Einstellungen> Permalinks gehe und die URL-Struktur so anpasse, dass sie ...

/blog/%postname%/

... dann sind die URLs für alle meine Beitragstypen betroffen, was Folgendes zur Folge hat:

  • mysite.com/ Blog / Portfolio / name-of-custom-post
  • mysite.com/ Blog / Zeugnis / name-of-custom-post
  • usw...

Die Frage

Was ich wissen möchte - ist es möglich, die URL-Struktur für den integrierten WordPress-Beitragstyp anzupassen, ohne die URL-Struktur anderer benutzerdefinierter Beitragstypen zu beeinflussen?

Die einzige andere Möglichkeit, mein Dilemma zu lösen, besteht darin, einen anderen benutzerdefinierten Beitragstyp namens "Blog" zu erstellen. Dies scheint verschwenderisch zu sein, da ich dann den integrierten WordPress-Post-Typ überhaupt nicht verwenden werde.

Wenn jemand es braucht, das Warum

Wenn sich jemand fragt, warum ich "Blog" in der URL so dringend benötige, liegt dies daran, dass wir unser Blog in derselben Installation wie unsere Website zusammenführen und die URLs intakt halten möchten, damit wir keinen wertvollen Google-Saft verlieren.

Jede Hilfe wird sehr geschätzt - danke!

Ryan
quelle
Ich habe diese Frage fast
wörtlich gestellt

Antworten:

14

Sie können dies bei der Registrierung eines benutzerdefinierten Beitragstyps tun.

1) Stellen Sie Ihren Standard-Permalink im WordPress-Administrator auf die gewünschte Struktur ein, z.

/ blog /% postname%

2) Fügen Sie die Parameter "slug" und "with_front" zum Rewrite-Array in der Funktion register_post_type hinzu. "slug" muss der Name Ihres Post-Typs sein.

  $args = array(
    // ...
    'rewrite' => array(
        'slug' => 'your_post_type',
        'with_front' => false
    ),
    // ...
  ); 
  register_post_type('your_post_type',$args);

Dies sollte die folgenden Umschreiberegeln erzeugen:

Standardbeitrag: http://example.com/blog/%postname%
Standardseite: http://example.com/%postname%
Benutzerdefinierter Beitragstyp: http://example.com/your_post_type/%postname%

BEARBEITEN

Der Parameter "slug" ist optional. Wenn Sie es nicht festlegen, wird der Name Ihres benutzerdefinierten Beitragstyps verwendet. Überprüfen Sie die Funktionsreferenz zu register_post_type: http://codex.wordpress.org/Function_Reference/register_post_type

Rofflox
quelle
Du bist absolut der Mann. Das funktioniert perfekt; Vielen Dank!
Ryan
@rofflox. Bitte werfen Sie einen Blick auf diese Frage ( wordpress.stackexchange.com/questions/52471/… ). Ich habe deine Antwort versucht, aber das hat mir nicht geholfen.
Durchschnittlicher Joe
0

Alternative - Sie können permanente 301-Weiterleitungen einrichten. Dadurch werden die Leute auf den richtigen Link weitergeleitet und Ihr Google-Saft bleibt intakt. Ich kenne die Antwort auf Ihre spezielle Frage jedoch nicht.

mrtsherman
quelle
Danke mrtsherman. Ich habe unsere SEO-Person danach gefragt und erfahren, dass Sie durch 301 Weiterleitungen ein wenig Google-Saft verlieren. Ich würde gerne keine verlieren, aber wenn alles andere fehlschlägt, kann ich einfach diesen Weg gehen.
Ryan
@ Ryan - +1 lustig, meine Firma hat gerade darum gebeten, genau das Gleiche zu tun wie heute Nachmittag. Hoffentlich kommt jemand durch.
Mrtsherman