Obtener la URL de la página del blog establecida en Opciones
He configurado el blog para que sea una página diferente a la página de inicio.
Quiero tener un enlace desde single.php a esta página del blog.
¿Existe alguna función que obtenga la URL del blog?

La mejor manera de verificar la opción antes de establecer el enlace permanente es la siguiente:
if ( get_option( 'page_for_posts' ) ) {
echo '<a href="'.esc_url(get_permalink( get_option( 'page_for_posts' ) )).'">'.esc_html__( 'Blog', 'textdomain' ).'</a>';
} else {
echo '<a href="'.esc_url( home_url( '/' ) ).'">'.esc_html__( 'Blog', 'textdomain' ).'</a>';
}

Puedes usar get_option
de page_for_posts
para obtener el ID de la página y asignarlo a una variable o mostrarlo si así lo deseas.
<?php $postsPageId = get_option('page_for_posts'); ?>
<a href="index.php?p=<?php echo $postsPageId; ?>">Nuestro Blog</a>
Para información adicional sobre la función predeterminada get_option visita: Referencia de Opciones

Estoy de acuerdo con Hugh Man en que es mejor verificar la opción antes de mostrar el enlace, pero es posible configurar una página estática como página de inicio y dejar la página de entradas vacía. En este caso, el enlace simplemente apuntará a la URL de inicio. Un enfoque mejor es proporcionar una alternativa a la página de archivo de entradas. Algo así:
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( '/' ) );
}
}
