Получить URL-адрес страницы в блоге Параметры

Я установил блог на другую страницу, кроме главной страницы.

Я хочу иметь ссылку с single.php на эту страницу блога.

Есть ли какая-либо функция, которая вытаскивает URL-адрес для блога?

29 голосов | спросил Atif Mohammed Ameenuddin 28 PMpSat, 28 Apr 2012 13:56:00 +040056Saturday 2012, 13:56:00

5 ответов


56

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

<a href="<?php echo get_permalink( get_option( 'page_for_posts' ) ); ?>">Our Blog</a>
ответил Bill Erickson 28 PMpSat, 28 Apr 2012 20:19:44 +040019Saturday 2012, 20:19:44
11

С WordPress 4.5 вы можете использовать:

get_post_type_archive_link( 'post' );

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

ответил SeventhSteel 3 AMpMon, 03 Apr 2017 06:09:59 +030009Monday 2017, 06:09:59
2

Вы можете использовать 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: Справочник по параметрам

ответил Sagive SEO 28 PMpSat, 28 Apr 2012 15:46:34 +040046Saturday 2012, 15:46:34
2

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

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>';
}
ответил Human Askari 2 Maypm16 2016, 13:51:37
0

Согласитесь с Hugh Man, что лучше проверить опцию до эхо-ссылки, но можно установить статическую страницу в качестве первой страницы и оставить страницу сообщений пустым. В этом случае ссылка будет указывать на домашний 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( '/' ) );
    }
}
ответил Dmitry Mayorov 7 J0000006Europe/Moscow 2016, 12:26:05

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132