Hy Chillifish,
Non of the links are showing anything?
What is it you are trying to accomplish?
Do you wish to pass the reference but stay on the same page?
Kind regards,
Larsen
Those are just example links. What I want is for the last part of the URL to be made available to my plugin as I’m using it below:
$values['propref'] = get_query_var( "propref" );
This then makes a call to a database to retrieve the property details and populate the page.
Hy Chillifish,
Sorry to keep you waiting, needed to pick the kids out of school.
here’s the code:
$propurl='http://mysite.com/cottage-details/G638';
$propref= substr(strrchr($propurl, "/"), 1);
// so show the last text after the slash so i could see if it was working
echo $propref;
This would get the last text ( or numbers) after the last slash.
Hope this will help.
Kind regards,
Larsen
Many thanks and no worries for the delay, I had to pick my daughter up too!
How do I get the url into the $propurl variable? If I use get_permalink() of the page, it wouldn’t include the last bit.
Any idea why the permalink code I originally posted isn’t working?
Hy,
Maybe you could submit a form to a other page with a .gif image and a loading sign.. then store the url in a session and redirect back to the previous page.
get the permalink like this -> $propurl = substr(the_permalink(), 0, -1); this way you store the permalink without the last /
There might be a better solution like working with ajax.
You can submit the form with ajax so the actual page doesn’t disappear.
this could help (sorry i can’t provide u with a working sample, javascript is not my strongest side :))
Kind regards,
Larsen
Thanks for your help, but I’d really like to know what’s wrong with my add_rewrite_rule()
Hi chillifish,
Is kind of hard to find the fix for your code cause i can’t test it but here it goes:
add_action( 'init', 'rewriteprop_init' );
function rewriteprop_init()
{
add_rewrite_rule(
// The regex to match the incoming URL
'cottage-details/([^/]+)/?',
'index.php?p=2&propref=$matches[1]',
'top' );
}
//store query var for further use
add_filter( 'query_vars', 'prop_vars' );
function prop_vars( $query_vars )
{
$query_vars[] = 'cottage-details';
return $query_vars;
}
Now you can get or add the query var and value
add_query_arg( array('cottage-details' => 'value'), old_url );
$value = get_query_var('cottage-details');
I’ve been not able to test it, use at own risk.
If this is not working can you tell me what plugin you are using so i can install it and search for a fix.
Why did you add rewrite tag?
This is for adding a tag to use on the permalinks settings page.
You might need to flush your permalinks after adding the above code (or maby you own code will work also after flushing, you could tty this before ading the probided code.)
Read http://codex.ww.wp.xz.cn/Function_Reference/flush_rewrite_rules
I’m writing my own plugin and added a rewrite tag because that’s what it said to do on this page: http://codex.ww.wp.xz.cn/Rewrite_API/add_rewrite_rule
And yes, I’m flushing the rules after every change.
I can’t be explaining myself very well.
I have a list of properties on the home page http://example.com. If I want to view a property in detail, I send it to the page http://example.com/cottage-details/. This page has a function on it that searches for a property from the database. In order to know which property it needs, it needs a propref. I want it to take the propref from the URL so it’s nice for SEO eg, http://example.com/cottage-details/G368/. As far as I can tell, the add_rewrite_rule() is how I should go about this. I have installed this plugin: https://ww.wp.xz.cn/plugins/monkeyman-rewrite-analyzer/ and it’s showing that my rule should be working, but for some reason, it isn’t.
I just tried your suggestion BTW and again, it works in the rules, but doesn’t work when browsing.
It’s as if the server isn’t writing it properly. Should WordPress be writing the rule to the .htaccess?
Mod rewrite is on, but the instructions in that link don’t work for me. I don’t know whether it’s because it’s in a sub directory or whether it might actually be to do with the problem…
EDIT. Had made a mistake with the way I’d entered the data. mod_rewrite is working perfectly.
In that case there might need to be a extra /
Cause u use 3 time the /..
one after the main adress, one after the cottage page and one after the and one after the cottage ref.
If you use a subdomain there probably is a other / or a dot(sub.domain).
Make sure u add this to the rewrite rule.
Just saw your edit, is it working now?
If so kan you post the solution for future reference.
Kind regards,
Larsen
Added another / before the string (^/cottage-details/([^/]+)/?$) and it’s stopped taking the last section off. I had assumed as the rewrite base includes the subdirectory, I’d be starting the regex to not include it.
Tried to include the subdirectory in it, but that’s made no difference either.
Just realised, if I add a / before, then although it’s keeping the last part of the URL, it’s giving me a 404.