Question

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.

Était-ce utile?

La solution

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

Autres conseils

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

There is a simple method.

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

<?php
    $find = 'http://';
    $replace = '';
    $output = str_replace($find,$replace,get_permalink());
    $find = 'https://';
    $output = str_replace($find,$replace,get_permalink());

    echo '<p>' . $output . '</p>';
?>
Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top