Получить URL родительской страницы, чтобы показать, когда он находится на дочерних страницах

9

Я хотел бы спросить, как получить ссылку на родительскую страницу, когда я нахожусь на дочерних страницах? Я бы предпочел использовать правильную ссылку вместо <a href="javascript:history.back()">Go Back</a>метода.

Вопрос и пример: Как получить ссылку на дочернюю страницу 2-го уровня, когда я нахожусь на дочерней странице 3-го уровня?

Home > Parent Page > 1st Level Child Page > 2nd Level Child Page > 3rd Level Child Page

Home > Parent Page > 1st Level Child Page(this page link show up) > Current Page

Home > Parent Page(this page link show up) > Current Page

Обновленная строка: я добавил эти три примера выше для лучшего объяснения того, что я пытаюсь спросить.

Этот вопрос не о breadcrumbs. Я просто хотел бы получить ссылку на родительскую страницу, чтобы показать, когда она находится на дочерних страницах.

И как я могу получить ссылку на дочернюю страницу 1-го уровня, когда я нахожусь на дочерней странице 2-го уровня?

Причина, по которой я задаю этот вопрос, заключается в том, что я хочу создать Back To Previous Pageссылку для другого уровня, когда я нахожусь на другой дочерней странице. Пожалуйста, скажите мне, если вы не понимаете.

Jornes
источник

Ответы:

16

Вы можете использовать что-то вроде этого, чтобы получить URL родительской страницы (и показать ее заголовок):

<?php if ( $post->post_parent ) { ?>
 <a href="<?php echo get_permalink( $post->post_parent ); ?>" >
    <?php echo get_the_title( $post->post_parent ); ?>
 </a>
<?php } ?>

Если вы выполняете этот код вне цикла (спасибо @BorisKuzmanov ), то используйте это:

<?php global $post;
  if ( $post->post_parent ) { ?>
    <a href="<?php echo get_permalink( $post->post_parent ); ?>" >
    <?php echo get_the_title( $post->post_parent ); ?>
    </a>
<?php } ?>
Пазл Обезьяна
источник
1
это не работает
Джорнс
Что вы имеете в виду, это не работает? Где вы положили этот код?
Пазл Обезьяна
Я разместил этот код на странице, где я хочу, чтобы ссылка отображалась. Но это ничего не показывает.
Йорнс
Попробуйте это на вашем sidebar.php и посмотрите, работает ли он там. Это покажет только что-то (родитель страницы), КОГДА у рассматриваемой страницы есть родитель.
Обезьянка-головоломка
1
Если вы запускаете код вне цикла, попробуйте добавить его global $postв начале кода.
Борис Кузманов