1

I have this line …

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

and the result on my page looks like this …

http://mysite.com/whatever/post-or-so

I guess it could also look like this …

http://www.mysite.com/whatever/post-or-so

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.

3 Answers 3

2

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

6

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>';
0

There is a simple method.

$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'] will return the absolute url without http(s) in the beginning.

1
  • Only of the current page. This won't work for showing links to other pages in the loop, like get_permalink will.
    – Rup
    Dec 24, 2020 at 13:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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