¿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!