Как получить URL страницы по её ID?

12 мар. 2015 г., 18:23:36
Просмотры: 39.2K
Голосов: 6

Я пытался использовать get_page_link('page-id') и get_permalink('page-id'), но возникла следующая ошибка.

Фатальная ошибка: Вызов метода get_page_permastruct() для null в ...

Как получить URL страницы, зная только её ID?

3
Комментарии

Ты пишешь это так, с 'page-id'? Нужно передать реальный ID, и тогда это должно сработать. get_permalink(4); или переменную с ID get_permalink($id);

jzatt jzatt
12 мар. 2015 г. 18:29:03

Да, я знаю. Я написал 'page-id' в качестве примера. Проблема в том, что это не работает с существующим ID страницы. Я пробовал это даже на чистой установке WP.

Maverick Maverick
12 мар. 2015 г. 18:32:45

Хорошо, никогда нельзя быть уверенным, поэтому я решил хотя бы спросить! :)

jzatt jzatt
13 мар. 2015 г. 11:49:17
Все ответы на вопрос 2
0
12

Вы, вероятно, получаете эту ошибку, потому что WordPress по какой-то причине ещё не загрузил глобальную переменную $wp_rewrite. Либо что-то её деактивировало, либо вы пытаетесь выполнить эти функции до того, как WordPress успеет её загрузить.

Если вы пытаетесь сделать это в плагине или в файле functions.php вашей темы, убедитесь, что вы находитесь внутри функции, которая подключена к хуку after_setup_theme или хуку, который выполняется позже. Например:

function get_url_of_page_id_165() {
    return get_permalink( 165 );
}
add_action( 'after_setup_theme', 'get_url_of_page_id_165' );
12 мар. 2015 г. 18:42:59
2
<?php
$booking_url = get_permalink('15551');
echo $booking_url;
?>
26 окт. 2021 г. 07:00:16
Комментарии

OP сказал, что уже пробовал get_page_link и get_permalink, и это не сработало. Так что я думаю, вопрос действительно заключается в объяснении сообщения об ошибке, а не в том, какой API вызывать.

Rup Rup
26 окт. 2021 г. 11:21:45

Я использовал это. Это работает нормально, не нужно создавать никаких функций.

chirag p chirag p
4 окт. 2022 г. 16:31:02