Я встановив, що щоденник відрізняється від домашньої сторінки.
Я хочу мати посилання з single.php на цю сторінку блогу.
Чи є якась функція, яка витягує URL-адресу для блогу?
Я встановив, що щоденник відрізняється від домашньої сторінки.
Я хочу мати посилання з single.php на цю сторінку блогу.
Чи є якась функція, яка витягує URL-адресу для блогу?
Відповіді:
Щоб скористатися відповіддю пробачення, вам потрібно загорнути ідентифікатор у get_permalink (), щоб отримати фактичне посилання.
<a href="<?php echo get_permalink( get_option( 'page_for_posts' ) ); ?>">Our Blog</a>
Станом на WordPress 4.5 ви можете використовувати:
get_post_type_archive_link( 'post' );
Це стосується логіки отримання правильної URL-адреси незалежно від того, чи з’являються повідомлення на домашній сторінці чи на певній сторінці.
Найкращий спосіб перевірити варіант перед встановленням постійної посилання:
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>';
}
Ви можете використовувати 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 відвідайте: Довідка щодо варіантів
Погодьтеся з людиною Х'ю, що краще перевірити параметр, перш ніж відіслати посилання, але можна встановити статичну сторінку як основну, а сторінку публікацій порожньою. У цьому випадку посилання буде просто вказувати на домашню 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
функції