पेज स्लग का उपयोग करके पेज की पेज आईडी कैसे प्राप्त करें


35

Im WordPress के लिए बहुत नया है और मैं सोच रहा था कि क्या मैं page idइसके साथ मिल सकता हूं slug। क्या यह संभव है कृपया मुझे बताएं।

जवाबों:


47

उपयोग करें get_page_by_path($page_path):

$page = get_page_by_path( 'about' );
echo get_the_title( $page );

यह एक नियमित पोस्ट ऑब्जेक्ट लौटाएगा।


अगर मुझे चाइल्ड पेज की आईडी चाहिए, तो क्या होगा?
अजीब

1
@freaky फ़ंक्शन केवल पृष्ठ स्लग लेता है, न कि पैरेंट स्लग। चूंकि स्लग अद्वितीय हैं, इसलिए आपको हमेशा केवल एक पृष्ठ मिलेगा।
FUXIA

3
धन्यवाद, यह काम कर रहा है और बाल पृष्ठ के लिए मुझे हिट्स की तरह नेविगेट करना पड़ा$page = get_page_by_path( 'about/child' );
अजीब

बस स्पष्ट करने के लिए, आंतरिक रूप get_page_by_pathसे post_nameफ़ील्ड का उपयोग करता है , नहीं post_slug
19

बस स्पष्ट होने के लिए, यह पृष्ठ पथ का उपयोग करता है न कि पृष्ठ का नाम, सही? फिर "हमारे बारे में" नाम का एक पृष्ठ "हमारे बारे में" सही होना चाहिए? कोई शुरुआत या फिसलन के साथ?
user658182

16

मैं इस का उपयोग कर रहा हूँ ..

function get_id_by_slug($page_slug) {
    $page = get_page_by_path($page_slug);
    if ($page) {
        return $page->ID;
    } else {
        return null;
    }
} 

उम्मीद है कि यह किसी की मदद करेगा।


क्यों इसे एक समारोह में लपेटकर? get_page_by_pathपहले से ही अशक्त ...
GDY

क्योंकि ओपी सवाल आईडी वापस करना चाहता है, न कि पेज ऑब्जेक्ट।
user1158023

9

इस मंच पर यह पहले ही पूछा और उत्तर दिया जा चुका है। मैं उसी कोड को वहां से पेस्ट कर रहा हूं। पेज आईडी को पुनः प्राप्त करने के लिए इस फ़ंक्शन का उपयोग करें।

 function get_page_by_slug($page_slug, $output = OBJECT, $post_type = 'page' ) { 
  global $wpdb; 
   $page = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type= %s AND post_status = 'publish'", $page_slug, $post_type ) ); 
     if ( $page ) 
        return get_post($page, $output); 
    return null; 
  }

3

एक ही पृष्ठ में कई बार कोड का उपयोग करने की कोशिश करते समय मुझे चुने हुए उत्तर के साथ समस्या थी। यह मेरे सभी पृष्ठों की सामग्री को हर समय एक ही समय में प्रदर्शित करता रहा। इसलिए मैं सोच में पड़ गया और वर्डप्रेस कोडेक्स के प्रलेखन के आधार पर इस सरल दृष्टिकोण के साथ आया :

<?php $query = new WP_Query( array( 'pagename' => 'about-me' ) );
        while ( $query->have_posts() ) {
        $query->the_post();
        echo '<h2>'. get_the_title() .'</h2>';
        the_content();
    }
    wp_reset_postdata();
?>

शायद यह अभी भी वहाँ किसी के लिए उपयोगी हो सकता है; डी


0
<?php  function get_page_ID_by_slug( $slug ) {
    $page = get_page_by_path( $slug );
    if ( $page ) {
        return (int) $page->ID;
    }
    else {
        return null;
    }
}
?>

मुझे उम्मीद है कि यह सुझाव किसी के लिए उपयोगी है।


0

यहाँ बहुत सारे उत्तर जो अत्यधिक जटिल लगते हैं, या विशेष रूप से पेज आईडी प्राप्त करने का तरीका नहीं बताते हैं।

            $page = get_page_by_path("your-page-slug");
            if ($page) {
                $page_id =  $page->ID;
                echo $page_id;
            }

उपरोक्त विवरण में हमने पोस्ट ऑब्जेक्ट को $ पृष्ठ पर असाइन किया है - एक बार पोस्ट ऑब्जेक्ट होने के बाद आप यहाँ वर्णित किसी भी जानकारी को प्राप्त कर सकते हैं: https://codex.wordpress.org/Class_Reference/WP_Post

            $page->ID
            $page->post_status
            $page->post_title

और भी काफी

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.