Ondersteuning » Algemeen WordPress » Custom post type met custom rewrite rules

  • Hoi,

    Ik ben momenteel een nieuwe custom post type aan het maken. Ik doe dat in een zelfgemaakte plugin, want als ik alles in de functions.php knal dan word het één grote onoverzichtelijke brei van minstens 2000 regels. De naam ervan is ‘webspots’. Dit zijn korte ‘posts’ met een veld voor de titel, een korte samenvatting van de link en een veld voor de url.

    Als ik gewoon de standaard rewrite rules gebruik, werkt alles prima. Geen probleem. Maar ik wil graag custom rewrite rules want ik ben niet tevreden met het feit dat bij custom post types WordPress regels aan zit te maken die ze zelf ten zeerste afraad. (Namelijk alleen de postname). De aangemaakte regels zie er zo uit:

    http://www.example.com/webspots/dit-is-een-web-spot/

    Wat ik graag wil is dit:
    http://www.example.com/webspots/93/dit-is-een-web-spot/

    In dit geval moet WordPress alleen maar de post id over te nemen. Geen omslachtige en anti-performance regels dus.

    Ik ben nu 3 dagen volop bezig geweest om te zoeken naar oplossingen, heb plugins binnenste buiten gehaald maar ik kom er niet uit.

    Zou iemand mij kunnen helpen/uitleggen wat ik moet doen om deze regels te krijgen. Ik neem aan dat ik de standaard ‘rewrite’ regels gewoon uit moet zetten als ik custom rewrite regels ga maken.

    PS: Ik weet dat de plugin “CMS Press” hier voor zorgt, en ik heb in die plugin gekeken. Maar het probleem van CMS Press is dat ik daarmee niet zelf kan bepalen waar de nieuwe post type in het admin menu verschijnt. Ik wil het namelijk gewoon netjes onder de posts.

    Er zijn nog een aantal andere opties die je niet kan instellen d.m.v. deze plugin. De beste oplossing is dus om zelf een plugin te maken van de gewenste post type. En dit werkt. Ik heb dan de volledige vrijheid om het te maken zoals ik dat wil. Alleen zit ik dus met het probleem dat ik niet goed snap hoe ik dus die custom rewrite rules aan moet maken. En ook zo, dat ze werken.

    Ik weet wel dat dit werkt:

    $newrules['webspots/([0-9]+)/$'] = '?post_type=webspot&p=$matches[1]';

    Maar als ik dan naar de aangemaakte link ga:
    http://www.example.com/webspots/93/
    dan word ik ge-redirect naar
    http://www.example.com/?post_type=webspot&p=93

    Dit is iets wat wel goed is, alleen wil ik dat de url in de adres balk gewoon blijft zoals ik het wil. http://www.example.com/webspots/93/

    Verder, als ik met deze nieuwe rewrite rule naar de volgende url ga
    http://www.example.com/webspots/93/dit-is-een-web-spot/
    dan werkt het niet, want hij pakt alleen regels zonder dus die postname. erg vervelend dus.

    Ik wil het dus ook zo maken dat als je alleen het id erachter webspost/ in typt dat het al werkt. Dus of er nou een title slug (postname) in staat of niet. De postname staat er dan alleen voor seo redenen.

    Sorry voor de lange uitleg, ik hoop dat iemand mij kan helpen.

    Alvast bedankt

2 reacties aan het bekijken - 1 tot 2 (van in totaal 2)
2 reacties aan het bekijken - 1 tot 2 (van in totaal 2)
  • Het onderwerp ‘Custom post type met custom rewrite rules’ is gesloten voor nieuwe reacties.