পৃষ্ঠা স্লাগ ব্যবহার করে কীভাবে কোনও পৃষ্ঠার পৃষ্ঠা আইডি পাবেন


35

তোমার দর্শন লগ করা প্রশংসনীয় ওয়ার্ডপ্রেস নতুন এবং যদি আমি একটি পেতে পারে আমি ভাবছিলাম page idএটা দিয়ে slug। এটা কি সম্ভব আমাকে জানাবেন?

উত্তর:


47

ব্যবহার get_page_by_path($page_path):

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

এটি একটি নিয়মিত পোস্ট অবজেক্ট ফিরিয়ে দেবে।


আমি চাইলে এটি কোনও শিশু পৃষ্ঠার আইডি চাই?
অদ্ভুত

1
@ ফ্রাইকি ফাংশনটি কেবল পৃষ্ঠ স্লাগ নেয়, পিতামাতার স্লাগ নয়। যেহেতু স্লাগগুলি অনন্য, আপনি সর্বদা মাত্র একটি পৃষ্ঠা পাবেন।
ফুসিয়া

3
ধন্যবাদ এটি কাজ করছে এবং শিশু পৃষ্ঠার জন্য আমাকে হিটগুলির মতো নেভিগেট করতে হয়েছিল$page = get_page_by_path( 'about/child' );
freaky

কেবল পরিষ্কার করতে, ক্ষেত্রটি অভ্যন্তরীণভাবে get_page_by_pathব্যবহার করে post_name, না post_slug
colefner

কেবল পরিষ্কার করার জন্য, এটি পৃষ্ঠার নাম ব্যবহার করে পৃষ্ঠার নাম নয়, সঠিক? তারপরে "আমাদের সম্পর্কে" নামে একটি পৃষ্ঠা যুক্তিটি "আমাদের সম্পর্কে" হওয়া উচিত, সঠিক? কোন প্রারম্ভিক বা পিছনে পিছনে আছে?
ব্যবহারকারী 658182

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ইতিমধ্যে শূন্য ফিরে ...
জিডিওয়াই

কারণ ওপি প্রশ্নটি পৃষ্ঠার অবজেক্ট নয়, আইডি ফিরিয়ে দিতে চায়।
ব্যবহারকারী 1158023

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_References/WP_Post

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

এবং আরো অনেক কিছু

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.