Dapatkan URL halaman blog diatur dalam Opsi


Jawaban:


70

Untuk membangun jawaban Sagive, Anda ingin membungkus ID di get_permalink () untuk mendapatkan tautan yang sebenarnya.

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

25

Pada WordPress 4.5 Anda dapat menggunakan:

get_post_type_archive_link( 'post' );

Ini menangani logika untuk mendapatkan URL yang benar terlepas dari apakah posting muncul di beranda atau di halaman yang ditentukan.


4

Cara terbaik untuk memeriksa opsi sebelum menyetel permalink adalah sebagai berikut:

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

Anda dapat menggunakan get_optiondari page_for_postsuntuk mendapatkan ID halaman untuk menetapkannya ke variabel atau untuk menggemakannya jika Anda ingin melakukannya.

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

Untuk informasi tambahan tentang kunjungan get_option defualt: Referensi Opsi


1

Setuju dengan Hugh Man bahwa lebih baik untuk memeriksa opsi sebelum menggemakan tautan, tetapi dimungkinkan untuk mengatur halaman statis sebagai halaman depan dan membiarkan halaman posting kosong. Dalam hal ini, tautan hanya akan mengarah ke URL beranda. Pendekatan yang lebih baik adalah memberikan fallback ke halaman arsip posting. Sesuatu seperti ini:

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( '/' ) );
    }
}

Anda tidak harus esc_urldengan get_permalinkdan home_urlfungsi
Tolea Bivol
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.