Archief - url rewrite met wordpress

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

wdelements

Legacy Member
Ik heb een simpel siteje gemaakt in wordpress met drie paginas: about,contact en wallpapers

Deze werken via mod rewrite en dus kan ik ze aanroepen via een clean url, bijvoorbeeld http://www.website.com/contact

dit via de instellingen in .htaccess:

Code:
# 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

Nu zou ik echter ook wallpapers willen laten toevoegen en deze toegevoegde wallpapers ophalen per user bijvoorbeeld:

http://www.website.com/wallpapers/upload/
en http://www.website.com/wallpapers/user/testuser/, ...

De upload pagina is niet moeilijk, dat is gewoon een nieuwe page aanmaken.
Als ik echter de tweede link intyp krijg ik "page not found" terwijl ik gewoon wil dat hij altijd naar wallpapers gaat en ik de url dan split om de parameters te gebruiken om de page op te bouwen.

Daarom dacht ik Rewriterules bij te voegen in .htaccess:

Code:
RewriteRule ^wallpapers/(.*)/(.*/)$ wallpapers.php?filter=$1&name=$2

Dit werkt echter niet, en ik snap niet echt waarom.
Websites die ik zelf from scratch maak werken hiermee prima.
Iemand die een idee heeft wat ik fout doe?

PoMpElSiEn

Legacy Member
in wordpress werken de rewrites anders

je moet maar eens zoeken naar de volgende zaken in de referenceguide:
- add_filter('query_vars', 'add_my_query_var');
- add_filter('rewrite_rules_array', 'add_rewrite_rules');

Daar moet je wel verder mee kunnen. Wel 1tip moesten de rewriterules niet direct werken moet je via settings -> permalinks je links eens opnieuw opslaan

wdelements

Legacy Member
PoMpElSiEn zei:
in wordpress werken de rewrites anders

je moet maar eens zoeken naar de volgende zaken in de referenceguide:
- add_filter('query_vars', 'add_my_query_var');
- add_filter('rewrite_rules_array', 'add_rewrite_rules');

Daar moet je wel verder mee kunnen. Wel 1tip moesten de rewriterules niet direct werken moet je via settings -> permalinks je links eens opnieuw opslaan

Idd, het is blijkbaar niet zo evident, had via een plugin ongeveer bereikt wat ik wilde, maar daarna werken de category's niet meer..

Bedankt voor de tips alvast, zal eens wat opzoekwerk verrichten :)

wdelements

Legacy Member
Het lukt me nog niet helaas.
Wat heb ik gedaan:

1. Een custom page aangemaakt in de map van het standaard thema:

Code:
<?php
/*
Template Name: wallpapers
*/

get_header(); ?>

		<div id="container">
			<div id="content" role="main">

			<?php echo "sid = " . $_POST['sid']; ?>

			</div><!-- #content -->
		</div><!-- #container -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

Dan heb ik bij functions.php de volgende zaken onderaan toegevoegd:

Code:
function add_query_vars($aVars) {
    array_push($aVars, 'sid');
    return $aVars;
}
 
add_filter('query_vars', 'add_query_vars');

function add_rewrite_rules($aRules) {
    $aNewRules = array('wallpapers/(.*)/?$' => 'index.php?pagename=wallpapers&sid=$matches[1]');
    $aRules = $aNewRules + $aRules;
    return $aRules;
}
 
add_filter('rewrite_rules_array', 'add_rewrite_rules');

Maar als ik dan naar http://www.mijnwebsite.be/wallpapers/123/ ga is de var "sid" leeg.

Iemand enig idee wat ik fout doe? Heb de info van deze pagina gevolgd:
Wordpress permalinks and custom $_GET Variables | Janes Oosthuizen
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan