Отримайте встановлену URL-адресу сторінки блогу в Параметри


Відповіді:


70

Щоб скористатися відповіддю пробачення, вам потрібно загорнути ідентифікатор у 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>

Для отримання додаткової інформації про defualt get_option відвідайте: Довідка щодо варіантів


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.