मैंने ब्लॉग को होम पेज के अलावा एक अलग पेज होने के लिए सेट किया है।
मैं इस ब्लॉग पेज पर single.php से एक लिंक रखना चाहता हूं।
क्या कोई ऐसा फंक्शन है जो ब्लॉग के लिए URL खींचता है?
मैंने ब्लॉग को होम पेज के अलावा एक अलग पेज होने के लिए सेट किया है।
मैं इस ब्लॉग पेज पर single.php से एक लिंक रखना चाहता हूं।
क्या कोई ऐसा फंक्शन है जो ब्लॉग के लिए URL खींचता है?
जवाबों:
सगिव के उत्तर का निर्माण करने के लिए, आप वास्तविक लिंक प्राप्त करने के लिए get_permalink () में आईडी को लपेटना चाहेंगे।
<a href="<?php echo get_permalink( get_option( 'page_for_posts' ) ); ?>">Our Blog</a>
वर्डप्रेस 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>
अवशिष्ट 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