Este es el código que estoy usando:
<?php echo str_replace( home_url(), '', get_permalink($post->ID) ); ?>
Lo que hace es generar el enlace permanente como una URL relativa, es decir, solo el slug. Por ejemplo, si el enlace permanente es http://example.com/2012/01/post-title/
, la salida de URL relativa del código se vería como /2012/01/post-title/
.
Problema: Todas las publicaciones y páginas muestran el enlace permanente correcto, lo cual es genial. Pero todas las demás páginas (incluyendo Inicio, Búsqueda y Archivos) muestran la URL relativa de la primera publicación y no la de las páginas respectivas. ¿Alguna idea de por qué? ¿Qué estoy haciendo mal aquí?
Referencia: Obtenga el enlace permanente de la página sin wpurl
EDITAR: Esto es lo que más he probado:
En functions.php
function get_relative_permalink( $url ) {
$url = get_permalink();
return str_replace( home_url(), "", $url );
}
En header.php
<link rel="alternate" hreflang="en-IN" href="http://in.example.com/<?php echo get_relative_permalink(); ?>" />
El mismo problema con esto también. Pero este también muestra un error no muy informativo.