Получить URL страницы блога, установленный в настройках


Ответы:


71

Чтобы основываться на ответе Сагива, вам нужно обернуть идентификатор в get_permalink (), чтобы получить фактическую ссылку.

<a href="<?php echo get_permalink( get_option( 'page_for_posts' ) ); ?>">Our Blog</a>

25

Начиная с WordPress 4.5 вы можете использовать:

get_post_type_archive_link( 'post' );

Это обрабатывает логику получения правильного URL независимо от того, отображаются ли сообщения на домашней странице или на указанной странице.


4

Лучший способ проверить параметр перед установкой постоянной ссылки заключается в следующем:

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>';
}

3

Вы можете использовать get_optionдля того page_for_postsчтобы получить идентификатор страницы либо присвоить его переменной или повторить его , если вы хотите , чтобы сделать это.

<?php $postsPageId = get_option('page_for_posts'); ?>
<a href="index.php?p=<?php echo $postsPageId; ?>">Our Blog</a>

Для получения дополнительной информации о посещении по умолчанию get_option: Опция Reference


1

Согласитесь с Хью Маном, что перед повторением ссылки лучше проверить этот параметр, но можно установить статическую страницу в качестве главной страницы и оставить страницу постов пустой. В этом случае ссылка будет просто указывать на домашний 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( '/' ) );
    }
}

Вы не должны esc_urlв get_permalinkи home_urlфункции
Tolea Bivol
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.