Eu configurei o blog para ser uma página diferente da página inicial.
Quero ter um link de single.php para esta página do blog.
Existe alguma função que extrai o URL do blog?
Eu configurei o blog para ser uma página diferente da página inicial.
Quero ter um link de single.php para esta página do blog.
Existe alguma função que extrai o URL do blog?
Respostas:
Para aproveitar a resposta do Sagive, você deve agrupar o ID em get_permalink () para obter o link real.
<a href="<?php echo get_permalink( get_option( 'page_for_posts' ) ); ?>">Our Blog</a>
A partir do WordPress 4.5, você pode usar:
get_post_type_archive_link( 'post' );
Isso lida com a lógica de obter o URL correto, independentemente de as postagens aparecerem na página inicial ou em uma página especificada.
A melhor maneira de verificar a opção antes de definir o link permanente é a seguinte:
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>';
}
Você pode usar get_option
de page_for_posts
para obter o ID da página, quer atribuí-la a uma variável ou a eco-lo se você deseja fazê-lo.
<?php $postsPageId = get_option('page_for_posts'); ?>
<a href="index.php?p=<?php echo $postsPageId; ?>">Our Blog</a>
Para obter informações adicionais da visita get_option padrão: Referência de opção
Concorde com o Hugh Man que é melhor marcar a opção antes de repetir o link, mas é possível definir a página estática como primeira página e deixar a página de postagens vazia. Nesse caso, o link apontará apenas para o URL inicial. Uma abordagem melhor é fornecer um fallback para a página de arquivamento de postagens. Algo assim:
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( '/' ) );
}
}
esc_url
osget_permalink
ehome_url
funções