विकल्प में ब्लॉग पेज URL सेट करें


38

मैंने ब्लॉग को होम पेज के अलावा एक अलग पेज होने के लिए सेट किया है।

मैं इस ब्लॉग पेज पर single.php से एक लिंक रखना चाहता हूं।

क्या कोई ऐसा फंक्शन है जो ब्लॉग के लिए URL खींचता है?

जवाबों:


70

सगिव के उत्तर का निर्माण करने के लिए, आप वास्तविक लिंक प्राप्त करने के लिए get_permalink () में आईडी को लपेटना चाहेंगे।

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

25

वर्डप्रेस 4.5 के रूप में आप उपयोग कर सकते हैं:

get_post_type_archive_link( 'post' );

यह इस बात की परवाह किए बिना सही URL प्राप्त करने का तर्क देता है कि क्या पोस्ट मुखपृष्ठ पर या किसी निर्दिष्ट पृष्ठ पर दिखाई देते हैं।


4

पर्मलिंक सेट करने से पहले विकल्प की जांच करने का सबसे अच्छा तरीका इस प्रकार है:

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

आप उपयोग कर सकते हैं 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 यात्रा की अतिरिक्त जानकारी के लिए: विकल्प संदर्भ


1

ह्यूग मैन के साथ सहमत हूं कि लिंक को गूँजने से पहले विकल्प की जांच करना बेहतर है, लेकिन स्टेटिक पेज को फ्रंट पेज के रूप में सेट करना और पोस्ट पेज को खाली छोड़ना संभव है। इस स्थिति में, लिंक केवल होम 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_permalinkhome_url
टोलिया बीवोल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.