¿Enlaces internos a páginas en PHP?
¿Cuál es la mejor manera de enlazar a páginas de WordPress con PHP? Teniendo en cuenta que muevo la página de un servidor local a un servidor en vivo con otra URL?
<a href="/wordpress/services" title="Leer más" class="yellowButton">Leer más</a>
¿Cómo podrías reemplazar este código con PHP enlazando a la página de WordPress?
/wordpress/services
Enlace permanente de página desde $id
Si conoces el $id
de la página, usa get_permalink()
:
<?php $permalink = get_permalink( $id ); ?>
Enlace permanente de página desde $slug
Si conoces el $slug
de la página, como /acerca-de
(incluyendo jerarquía, como /acerca-de/trabajo
), usa get_page_by_path()
para obtener el $id
de la página, luego usa get_permalink()
.
<?php
$page_object = get_page_by_path( $slug );
$page_id = $page_object->ID;
$permalink = get_permalink( $page_id );
?>
Enlace permanente de página desde $title
Si conoces el $title
(título) de la página, como "Algún nombre de página aleatorio", usa get_page_by_title()
, luego usa get_permalink()
:
<?php
$page_object = get_page_by_title( $title );
$page_id = $page_object->ID;
$permalink = get_permalink( $page_id );
?>

Si deseas codificar manualmente '/page-names' puedes usar la función home_url('/wordpress/services') junto con esc_url() para sanitizar las URLs - siempre obtendrás la URL completa de la página de inicio (local o en producción).
<a href="<?php echo esc_url( home_url( '/wordpress/services' ) ); ?>"
title="Leer más" class="yellowButton">
Leer más
</a>

Puedes usar un shortcode para insertar el nombre del dominio en el enlace interno y luego simplemente agregar la URL de la página al final, por ejemplo [domain_name]/nombre-de-pagina.
¡Añade este código en el archivo functions.php de tu tema hijo y estará listo para usar!
//añade shortcode que muestra el nombre del sitio actual
function domain_name(){
$currentDomain = "tusitio.com";
return $currentDomain;
}
add_shortcode('domain_name', 'domain_name');
He probado esto en múltiples sitios en vivo y parece estar funcionando perfectamente.
¡Espero que esto sea lo que estabas buscando!
