Внутренние ссылки на страницы в PHP?
Какой лучший способ создания ссылок на страницы WordPress с помощью PHP? Учитывая, что я перемещаю страницу с локального сервера на рабочий сервер с другим URL?
<a href="/wordpress/services" title="Читать далее" class="yellowButton">Читать далее</a>
Как можно заменить этот код с помощью PHP-ссылки на страницу WordPress.
/wordpress/services
Постоянная ссылка страницы по $id
Если вам известен $id
страницы, используйте функцию get_permalink()
:
<?php $permalink = get_permalink( $id ); ?>
Постоянная ссылка страницы по $slug
Если вам известен $slug
страницы, например /about
(включая иерархию, например /about/work
), используйте функцию get_page_by_path()
для определения $id
страницы, затем примените get_permalink()
.
<?php
$page_object = get_page_by_path( $slug );
$page_id = $page_object->ID;
$permalink = get_permalink( $page_id );
?>
Постоянная ссылка страницы по $title
Если вам известно название страницы $title
, например "Какое-то случайное название страницы", используйте функцию get_page_by_title()
, затем примените get_permalink()
:
<?php
$page_object = get_page_by_title( $title );
$page_id = $page_object->ID;
$permalink = get_permalink( $page_id );
?>

Если вам нужно жестко прописать '/page-names', вы можете использовать функцию home_url('/wordpress/services') вместе с esc_url() для санации URL - это всегда будет возвращать полный URL домашней страницы (локально или на боевом сервере).
<a href="<?php echo esc_url( home_url( '/wordpress/services' ) ); ?>"
title="Подробнее" class="yellowButton">
Подробнее
</a>

Вы можете использовать шорткод для вставки имени домена во внутреннюю ссылку, а затем просто добавить URL страницы в конце, например [domain_name]/название-страницы.
Добавьте этот код в файл function.php вашей дочерней темы, и он готов к использованию!
//добавляем шорткод, который отображает текущее имя сайта
function domain_name(){
$currentDomain = "вашсайт.com";
return $currentDomain;
}
add_shortcode('domain_name', 'domain_name');
Я протестировал это на нескольких работающих сайтах, и всё работает идеально.
Надеюсь, это то, что вы искали!
