Mostrar el enlace permanente (permalink) sin http y www en WordPress
Tengo esta línea …
<div class="permalink"><?php the_permalink(); ?></div>
y el resultado en mi página se ve así …
http://misitio.com/cualquier/cosa-o-post
Supongo que también podría verse así …
http://www.misitio.com/cualquier/cosa-o-post
Sin embargo, me gustaría tener solo misitio.com/cualquier/cosa-o-post
sin el http://
o www
al principio.
No me malinterpreten, esto no tiene nada que ver con reescribir enlaces permanentes o algo por el estilo. Solo es un simple echo de the_permalink()
en mi página que no se maneja como enlace sino como texto normal. Y en este caso me gustaría eliminar el http o www.

Como sugirió @milo, puedes manipular el retorno de get_permalink()
. Esto se puede hacer fácilmente mediante varias funciones de cadena de php, aquí se usa str_replace()
. Si necesitas eliminar tanto http://
como https://
, proporciona un array de agujas a str_replace()
.
$permalink = get_permalink();
$find = array( 'http://', 'https://' );
$replace = '';
$output = str_replace( $find, $replace, $permalink );
echo '<p>' . $output . '</p>';
El código anterior no se encarga de la parte www(.)
, pero el principio debería quedar claro.
Otra posibilidad para la manipulación son las funciones PCRE (Expresiones Regulares Compatibles con Perl) de php, aquí se usa 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>';

usa get_permalink
en lugar de the_permalink
y manipúlalo como prefieras mediante php.
