Obtener la URL de la página del blog establecida en Opciones

28 abr 2012, 12:56:00
Vistas: 80.7K
Votos: 54

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?

0
Todas las respuestas a la pregunta 5
0
94

Para ampliar la respuesta de Sagive, deberás envolver el ID en get_permalink() para obtener el enlace real.

<a href="<?php echo get_permalink( get_option( 'page_for_posts' ) ); ?>">Nuestro Blog</a>
28 abr 2012 19:19:44
0
49

A partir de WordPress 4.5 puedes usar:

get_post_type_archive_link( 'post' );

Esta función maneja la lógica para obtener la URL correcta independientemente de si las publicaciones aparecen en la página de inicio o en una página específica.

3 abr 2017 06:09:59
0

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>';
}
2 may 2016 13:51:37
0

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

28 abr 2012 14:46:34
1

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( '/' ) );
    }
}
7 jun 2016 12:26:05
Comentarios

No necesitas usar esc_url con las funciones get_permalink y home_url

Anatol Bivol Anatol Bivol
7 abr 2017 10:48:04