Question

My urls for posts in WordPress looks like this: http://localhost:8888/blabla/book/yes-vi-testar

Using the_permalink() would generate "http://localhost:8888/blabla/book/yes-vi-testar" but I want to cut the first 34 characters to get a string like "yes-vi-testar". How do I use php substr in a case like this? I'm confused... I tried

<?php
    $friendlypermalink = substr(the_permalink(), 34);
?>

but that doesnt do the trick.

Was it helpful?

Solution

Use get_the_permalink to get the permalink without echoing it

So

substr(get_the_permalink(), .............);

A lot of of the Wordpress function have 'return' alternates using get as the operative word. IE: get_the_time, get_the_content, etc.

the_title is the only one I believe that doesn't have this option. For the_title you have to pass two empty parameters (the before and after seperators) and either a true or false ... not sure at the moment

the_title("","",true);

OTHER TIPS

As Chacha says, use get_the_permalink(). You can then do something like:

$url = get_the_permalink();
$text = substr($url, strrpos($url, '/') + 1);

//or

preg_match('~[^/]+$~', get_the_permalink(), $m);
$text = $m[0];
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top