Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Wordpress] Custom urls in page-template redirect naar home

Pagina: 1
Acties:

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Hopelijk het goede forum.

Ik ben bezig met Wordpress voor het eerst in mijn leven :)

Ik moet nu een pagina maken met een lijst van cursussen en een detailpagina en aanmeldpagina etc.
Alle gegevens komen uit Excel. Alle cursussen worden in de database gezet inclusief wat informatie en data etc. Dus dat is allemaal dynamisch

Ik wil daar mooie urls voor gebruiken.
Ik heb wordpress permalinks al ingesteld op mooie urls ("berichtnaam").


Dus ik heb nu de link /cursussen/

En ik wil door kunnen linken naar
/cursussen/cursustag/
/cursussen/cursustag/aanmelden/

Maar hij gaat dan altijd weer naar /cursussen/
Als ik navigeer naar /cursussen/10/ gaat het wel goed. Maar dat wil ik niet.

Ik heb een plugin voor de uri-rewrite en query-var meuk gemaakt:
Hoe die rewritecode er uit ziet lijkt mij irrelevant, ik toon hier even de .htaccess die wordt gegenereerd. Ik gebruik wel de php add_rewrite meuk.
code:
1
2
3
4
5
6
7
8
9
10
11
12
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteRule ^(cursussen)/([^/]+)/? /?pagename=$1&cursuspage=cursusGroupList&cursusgrouptag=$2 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

# END WordPress


En de plugincode voor query-params-meuk:
PHP:
1
2
3
4
5
6
7
function parameter_queryvars( $qvars )
{
    $qvars[] = 'cursusid';
    $qvars[] = 'cursusgrouptag';
    $qvars[] = 'cursuspage';
    return $qvars;
}


In mijn page-template wil ik dan get_query_var("cursuspage") gebruiken.

Wat doe ik fout?

[ Voor 6% gewijzigd door Guillome op 06-01-2015 13:07 ]

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 15:31

TheNephilim

Wtfuzzle

Allereerst dien je je .htaccess bestand niet op deze manier aan te passen; regel 6 kun je weghalen. Je moet aan de slag met add_rewrite_rule.

Verder begrijp ik dat je nu pagina's gebruikt, maar gezien je meerdere cursussen wilt weergeven, zou ik met register_post_type een nieuw posttype maken. Dan kun je ook netjes de categorieën en/of tags gebruiken. Deze noem je course/class/oid. en je gebruikt de archive om alle cursussen weer te geven en de single om één cursus weer te geven.

  • Vos
  • Registratie: Juni 2000
  • Laatst online: 12:37

Vos

AFCA

Ik begrijp niet helemaal hoe je paginastructuur er uit moet komen te zien. Als je het als volgt inricht werkt het met 'mooie urls'.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Home

Cursussen
   Cursus1
      Detailpagina
      Aanmelden
   Cursus2
      Detailpagina
      Aanmelden
   Cursus3
      Detailpagina
      Aanmelden

Nieuws

Contact

Dan gebruik je de gewone pagina's voor je cursussen aanbod.

Echter zoals hierboven gesuggereerd wordt, zou ik met een custom post 'cursussen' aan de gang gaan.

[ Voor 19% gewijzigd door Vos op 06-01-2015 13:00 ]

#36


  • Guillome
  • Registratie: Januari 2001
  • Niet online
TheNephilim schreef op dinsdag 06 januari 2015 @ 12:58:
Allereerst dien je je .htaccess bestand niet op deze manier aan te passen; regel 6 kun je weghalen. Je moet aan de slag met add_rewrite_rule.

Verder begrijp ik dat je nu pagina's gebruikt, maar gezien je meerdere cursussen wilt weergeven, zou ik met register_post_type een nieuw posttype maken. Dan kun je ook netjes de categorieën en/of tags gebruiken. Deze noem je course/class/oid. en je gebruikt de archive om alle cursussen weer te geven en de single om één cursus weer te geven.
Sorry, ik gebruik idd wel php add_rewrite_rule. Maar daar zit de fout denk ik niet, dus ik toon even wat hij voor htaccess genereert.

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Guillome
  • Registratie: Januari 2001
  • Niet online
Vos schreef op dinsdag 06 januari 2015 @ 12:59:
Ik begrijp niet helemaal hoe je paginastructuur er uit moet komen te zien. Als je het als volgt inricht werkt het met 'mooie urls'.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Home

Cursussen
   Cursus1
      Detailpagina
      Aanmelden
   Cursus2
      Detailpagina
      Aanmelden
   Cursus3
      Detailpagina
      Aanmelden

Nieuws

Contact

Dan gebruik je de gewone pagina's voor je cursussen aanbod.

Echter zoals hierboven gesuggereerd wordt, zou ik met een custom post 'cursussen' aan de gang gaan.
Ja ongeveer klopt die structuur wel. Wat bedoel je met " dan gebruik je de gewone paginas voor je cursussen aanbod"?

edit.
Ik ga eens kijken naar die custom post. Thanks

[ Voor 3% gewijzigd door Guillome op 06-01-2015 13:03 ]

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 15:31

TheNephilim

Wtfuzzle

Guillome schreef op dinsdag 06 januari 2015 @ 13:00:
[...]

Sorry, ik gebruik idd wel php add_rewrite_rule. Maar daar zit de fout denk ik niet, dus ik toon even wat hij voor htaccess genereert.
Nou add_rewrite_rule doet helemaal niks met je .htaccess. Regel 6 hoort daar niet te staan, de .htaccess file veranderd namelijk niet. Ongeacht wat je voor rewrite rules gebruikt.

De pagina oplossing lijkt me niet heel handig, maar het is wel makkelijker te maken. Alleen het beheer er van kost wat meer tijd, je zult een aanmeld formulier steeds per cursus moeten maken ed.

  • Vos
  • Registratie: Juni 2000
  • Laatst online: 12:37

Vos

AFCA

Guillome schreef op dinsdag 06 januari 2015 @ 13:02:
[...]


Ja ongeveer klopt die structuur wel. Wat bedoel je met " dan gebruik je de gewone paginas voor je cursussen aanbod"?
Standaard kan je in WP posts (berichten) of pages (pagina's) gebruiken. Als jij via pagina's het zo inricht zoals ik schets dan heb je ook mooie url's (d.m.v. de permalink instelling).

Je kan echter ook een custom post aanmaken. Google daar maar eens op :). Is een betere aanpak maar vergt iets meer kennis.
De pagina oplossing lijkt me niet heel handig, maar het is wel makkelijker te maken. Alleen het beheer er van kost wat meer tijd, je zult een aanmeld formulier steeds per cursus moeten maken ed.
Dit inderdaad :).

En kan je het aanmelden niet beter integreren in de detailpagina? Scheelt een bezoeker weer een klik en extra stap.

[ Voor 26% gewijzigd door Vos op 06-01-2015 13:08 ]

#36


  • Guillome
  • Registratie: Januari 2001
  • Niet online
TheNephilim schreef op dinsdag 06 januari 2015 @ 13:05:
[...]


Nou add_rewrite_rule doet helemaal niks met je .htaccess. Regel 6 hoort daar niet te staan, de .htaccess file veranderd namelijk niet. Ongeacht wat je voor rewrite rules gebruikt.

De pagina oplossing lijkt me niet heel handig, maar het is wel makkelijker te maken. Alleen het beheer er van kost wat meer tijd, je zult een aanmeld formulier steeds per cursus moeten maken ed.
En toch wordt mijn htaccess geupdate zodra ik bij instellingen permalinks opnieuw opsla..

En dat per cursus een pagina maken is niet handig. Ik zal even de startpost aanpassen, maar:
Alle gegevens komen uit Excel. Alle cursussen worden in de database gezet inclusief wat informatie en data etc. Dus dat is allemaal dynamisch.

Dus lijkt me die custom post beter.

[ Voor 18% gewijzigd door Guillome op 06-01-2015 13:08 ]

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 15:31

TheNephilim

Wtfuzzle

Guillome schreef op dinsdag 06 januari 2015 @ 13:05:
[...]


En toch wordt mijn htaccess geupdate zodra ik bij instellingen permalinks opnieuw opsla...
Dat klopt, maar zonder regel 6 als het goed is.

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Als ik dit doe inderdaad wel:

add_rewrite_rule('(cursussen)/([^/]+)/?', 'index.php?pagename=$1&cursusid=$2', 'top');

Maar dan werkt het ook niet. Dan geeft ie "Pagina niet gevonden" bij
/cursussen/cursusgrouptagname/

Maar dat custom post verhaal ben ik nu aan het bekijken

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 15:31

TheNephilim

Wtfuzzle

Guillome schreef op dinsdag 06 januari 2015 @ 13:17:
Als ik dit doe inderdaad wel:

add_rewrite_rule('(cursussen)/([^/]+)/?', 'index.php?pagename=$1&cursusid=$2', 'top');

Maar dan werkt het ook niet. Dan geeft ie "Pagina niet gevonden" bij
/cursussen/cursusgrouptagname/

Maar dat custom post verhaal ben ik nu aan het bekijken
$matches[1] :>

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Oh ja vergeten aan te passen, stom :P

[ Voor 128% gewijzigd door Guillome op 06-01-2015 13:32 ]

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Guillome
  • Registratie: Januari 2001
  • Niet online
Ik vraag me af of die custom post type mijn oplossing is.
Nogmaals even de situatie schetsen:
Ik heb een databasestructuur met allemaal velden. Deze komen uit een csv file die geimporteerd worden.
Beheer is dus niet nodig.

Custom Post type gebruikt de standaard velden die wordpress kent. Nu kan je wel de custom-fields gebruiken. Maar dat voelt wat onlogisch. Ik gebruik liever de huidige structuur.

Het wordt geimporteerd vanuit een csv file en het enige wat moet gebeuren is het genereren van html op basis van die velden.

En de structuur is zoals boven aangegeven:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Home

CursusCategorieen
    Cursus categorie 1
        Cursus1
              Detailpagina
                    Aanmelden
        Cursus2
              Detailpagina
                    Aanmelden
    Cursuscategorie 2
         Cursus3
              Detailpagina
                    Aanmelden

Nieuws

Contact


Is dit wel handig met CPT? Het voelt zo omslachtig voor zoiets simpels, maar ik kan wordpress nog niet helemaal overzien

[ Voor 9% gewijzigd door Guillome op 06-01-2015 14:57 ]

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 15:31

TheNephilim

Wtfuzzle

Je kunt twee dingen doen...

A) De CSV importeren in de database, in eigen tabellen, zoals je nu (begrijp ik) doet. Met wpdb kun je queries schrijven waar je de query_vars gebruikt die je toegevoegd hebt.

C) De CSV importeren in een custom post type, waarbij je voor de extra velden custom fields gebruikt. Dit is alleen handig als je géén ingewikkelde queries hoeft te maken en niet zoveel (zeg 10-100) cursussen hebt om te laten zien.

Gezien je de CSV al in de database importeert zou ik gewoon optie A aanhouden.

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Ja daar ga ik inderdaad voor nu, icm add_rewrite_rules. Dat lijkt het mooist te werken :)
Thanks voor de info allemaal!

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Guillome
  • Registratie: Januari 2001
  • Niet online
Even een bump met een nieuwe vraag.

Ik heb het nu opgelost met custom post type en taxonomy:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
function custom_taxonomy_psp_course() {
  $labels = array(
    'name'              => _x( 'Cursuscategorie&euml;n', 'taxonomy general name' ),
    'singular_name'     => _x( 'Cursuscategorie', 'taxonomy singular name' ),
    'search_items'      => __( 'Zoeken in cursuscategorie&euml;n' ),
    'all_items'         => __( 'Alle cursuscategorie&euml;n' ),
    'menu_name'         => __( 'Cursuscategorie&euml;n' ),
  );
  $args = array(
    'labels' => $labels,
    'hierarchical' => true,
  );
  register_taxonomy( 'cursussen', 'cursus', $args );
}
add_action( 'init', 'custom_taxonomy_psp_course', 0 );


function custom_post_psp_courses() {
  $labels = array(
    'name'               => _x( 'Cursussen', 'post type general name' ),
    'singular_name'      => _x( 'Cursus', 'post type singular name' ),
    'all_items'          => __( 'Alle cursussen' ),
    'view_item'          => __( 'Bekijk cursus' ),
    'search_items'       => __( 'Zoek cursus' ),
    'add_new'            => __( 'Nieuwe cursus' ),
    'parent_item_colon'  => '',
    'menu_name'          => 'Cursussen'
  );

  $args = array(
    'labels'        => $labels,
    'description'   => 'Holds our products and product specific data',
    'public'        => true,
    'menu_position' => 5,
    'supports'      => array( 'title', 'editor', 'thumbnail' ),
    'has_archive'   => true,
  );
  register_post_type( 'cursus', $args ); 
}
add_action( 'init', 'custom_post_psp_courses' );


Url structuur is nu:
code:
1
2
3
cursussen/overzicht/ - overzicht cursuscategorien (taxonomies)
    cursussen/nen/ - overzucht cursussen binnen die category (taxonomy)
        cursus/nen-3140-avond/ - cursusdetailpagina (post type)


Hoe kan ik nu het beste de volgende aanmeldpagina en bedankpagina maken?
cursus/nen-3140-avond/aanmelden
cursus/nen-3140-avond/aangemeld

Met add_rewrite_rule? Zijn hier andere goede oplossingen voor?

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Mitchell-CWD
  • Registratie: Januari 2012
  • Laatst online: 20-11 20:15
Je kan in WP toch gewoon een hoofdpagina (parent) meegeven? Dit staat boven template/sjabloon als je een pagina aanpast.

Als je bv Home als parent neemt en de pagina heet test, wordt de url automatisch /home/test , als je permalinks goed staan.

Steam: mitchell99 - GTA V Social Club: MitchellFR - Overwatch/HotS/SC2 Battle.net: HunteR#1963

Pagina: 1