I have this line …

<div class="permalink"><?php the_permalink(); ?></div>

and the result on my page looks like this …


I guess it could also look like this …


However I'd like to have just mysite.com/whatever/post-or-so without the http:// or www in front of it.

What is the best and easiest way to do so?

Don't get me wrong, this has nothing todo with rewriting permalinks or whatsoever. Just a simple echo of the_permalink() on my page that is not handled as link but as normal text. And in this case I would like to get rid of the http or www.


use get_permalink instead of the_permalink and manipulate it however you'd like via php.


Like @milo suggested you can manipulate the return of get_permalink(). This can easily be done via several php string functions, here in use is str_replace(). If you have the need to remove both http:// and https:// give an array of needles to str_replace().

$permalink = get_permalink();
$find = array( 'http://', 'https://' );
$replace = '';
$output = str_replace( $find, $replace, $permalink );
echo '<p>' . $output . '</p>';

The above isn't taking care of the www(.) part, but the principle should be clear.

Another possibility for manipulation are php PCRE (Perl Compatible Regular Expressions) functions, here used preg_replace().

$permalink = get_permalink();
$find_h = '#^http(s)?://#';
$find_w = '/^www\./';
$replace = '';
$output = preg_replace( $find_h, $replace, $permalink );
$output = preg_replace( $find_w, $replace, $output );
echo '<p>' . $output . '</p>';
    $find = 'http://';
    $replace = '';
    $output = str_replace($find,$replace,get_permalink());
    $find = 'https://';
    $output = str_replace($find,$replace,get_permalink());

    echo '<p>' . $output . '</p>';
  • 1
    Please add an explanation to your answer: why could that solve the problem? – fuxia Dec 26 '13 at 17:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.