Saya telah menetapkan blog menjadi halaman lain selain halaman utama.
Saya ingin memiliki tautan dari single.php ke halaman blog ini.
Apakah ada fungsi yang menarik URL untuk blog?
sumber
Saya telah menetapkan blog menjadi halaman lain selain halaman utama.
Saya ingin memiliki tautan dari single.php ke halaman blog ini.
Apakah ada fungsi yang menarik URL untuk blog?
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>
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.
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>';
}
Anda dapat menggunakan get_option
dari page_for_posts
untuk 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
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( '/' ) );
}
}
esc_url
denganget_permalink
danhome_url
fungsi