Получить URL страницы блога, установленной в настройках
Я настроил блог на отдельной странице, отличной от главной страницы.
Я хочу добавить ссылку с single.php на эту страницу блога.
Существует ли функция, которая возвращает URL страницы блога?

Лучший способ проверить опцию перед установкой постоянной ссылки:
if ( get_option( 'page_for_posts' ) ) {
echo '<a href="'.esc_url(get_permalink( get_option( 'page_for_posts' ) )).'">'.esc_html__( 'Блог', 'textdomain' ).'</a>';
} else {
echo '<a href="'.esc_url( home_url( '/' ) ).'">'.esc_html__( 'Блог', 'textdomain' ).'</a>';
}

Вы можете использовать get_option
с параметром page_for_posts
для получения ID страницы, чтобы либо присвоить его переменной, либо вывести, если вы хотите это сделать.
<?php $postsPageId = get_option('page_for_posts'); ?>
<a href="index.php?p=<?php echo $postsPageId; ?>">Наш Блог</a>
Для дополнительной информации о стандартной функции get_option посетите: Справочник по опциям

Согласен с Хью Мэном, что лучше проверить опцию перед выводом ссылки, но можно установить статическую страницу в качестве главной и оставить страницу записей пустой. В этом случае ссылка будет просто вести на главный URL. Лучший подход — предусмотреть резервный вариант для архива записей. Например, так:
function slug_all_posts_link() {
if ( 'page' == get_option( 'show_on_front' ) ) {
if ( get_option( 'page_for_posts' ) ) {
echo esc_url( get_permalink( get_option( 'page_for_posts' ) ) );
} else {
echo esc_url( home_url( '/?post_type=post' ) );
}
} else {
echo esc_url( home_url( '/' ) );
}
}
