স্লাগ দ্বারা ওয়ার্ডপ্রেস ক্যোয়ারী একক পোস্ট


87

এই মুহুর্তের জন্য যখন আমি একটি লুপ ব্যবহার না করে একটি পোস্ট প্রদর্শন করতে চাই তখন আমি এটি ব্যবহার করি:

<?php
$post_id = 54;
$queried_post = get_post($post_id);
echo $queried_post->post_title; ?>

সমস্যাটি হ'ল আমি যখন সাইটটি স্থানান্তর করি তখন আইডিটির সাধারণত পরিবর্তন হয়। স্লাগ দ্বারা এই পোস্টটি জিজ্ঞাসা করার কোন উপায় আছে?


4
সাইটটি সরানোর সময় কেন আইডি পরিবর্তন হবে? আপনি যদি ডাব্লুপি এর আমদানি / রফতানি বৈশিষ্ট্যটি ব্যবহার করে সাইটটি সরিয়ে না না করেন (যা ভয়ঙ্করভাবে নির্ভরযোগ্য নয় এবং আমি এড়াতে পরামর্শ দেব)। আপনি যদি কেবল ডাটাবেস স্থানান্তরিত করেন তবে কিছুই পরিবর্তন হবে না।
— এন্নুই

উত্তর:


120

ওয়ার্ডপ্রেস কোডেক্স থেকে:

<?php
$the_slug = 'my_slug';
$args = array(
  'name'        => $the_slug,
  'post_type'   => 'post',
  'post_status' => 'publish',
  'numberposts' => 1
);
$my_posts = get_posts($args);
if( $my_posts ) :
  echo 'ID on the first post found ' . $my_posts[0]->ID;
endif;
?>

ওয়ার্ডপ্রেস কোডেক্স পোস্ট পান


4
এটি আইডি দেখায় - $ my_posts [0] -> আইডি; - তবে আমি কীভাবে পৃষ্ঠাগুলির সামগ্রী প্রদর্শন করব? আমি সবকিছু চেষ্টা করেছি এবং কিছুই কাজ করে না!
— জেমস উইলসন

4
@ জেমস উইলসন echo $my_posts[0]->post_content
— তোসকান

এটি একাধিক প্রত্যাবর্তন বলে মনে হচ্ছে, এবং এইভাবে অস্পষ্ট, ফলাফল কিছু স্লাগগুলি যদি বেশ অনুরূপ হয় (যেমন 'ওয়ার্ক' বনাম 'ওয়ার্কিং')
— সাইমন এইচ

4
নিশ্চিত নয় কেন তবে আমার এই কাজটির জন্য কাজ করার জন্য আমাকে 'নাম' পরিবর্তন করে 'পোস্ট_নাম' করতে হয়েছিল
— মাইক

এটি বৈশিষ্ট্যযুক্ত চিত্র $ Feat_image = wp_get_attachment_url (get_post_thumbnail_id ($ my_posts [0] -> আইডি)) পাওয়ার জন্য কাজ করে;
— ওমর

70

কেমন?

<?php
   $queried_post = get_page_by_path('my_slug',OBJECT,'post');
?>

9
বাচ্চাদের পৃষ্ঠাগুলি বা শ্রেণিবদ্ধ কাস্টম পোস্ট ধরণের প্রতি মনোযোগ দিন: my-slugহওয়া উচিত my-parent-slug/my-slug: কোডেক্স.ওয়ার্ডপ্রেস.আর.
— ফাংশন_প্রকাশ

4
এই পোস্টটি পড়ার পর থেকে আমার অভিজ্ঞতা @ ইরেনর পাজকে সমর্থন করে - এটি সত্যিই সুন্দর এবং সহজ হতে পারে তবে আপনি যখন স্লাগের ধারাবাহিকতার উপর নির্ভর করেন তখন এটি জটিল হয়ে যায় - যা প্যারেন্ট পোস্টটি পরিবর্তন করে কেবল পরিবর্তন করতে পারে ... দীর্ঘশ্বাস - সম্ভবত আমরা ওয়ার্ডপ্রেস ডেভসকে সেই পথে ওয়াইল্ডকার্ডের অনুমতি দিতে বোঝাতে পারে, উদাহরণস্বরূপ: get_page_by_path ('* / my_slug');
— aequalsb

খুব নির্ভরযোগ্য নয়
— আমিন

7

একটি কম ব্যয়বহুল এবং পুনরায় ব্যবহারযোগ্য পদ্ধতি

function get_post_id_by_name( $post_name, $post_type = 'post' )
{
    $post_ids = get_posts(array
    (
        'post_name'   => $post_name,
        'post_type'   => $post_type,
        'numberposts' => 1,
        'fields' => 'ids'
    ));

    return array_shift( $post_ids );
}

6

ওয়ার্ডপ্রেস এপিআই যেমন পরিবর্তন হয়েছে, আপনি প্যারাম 'পোস্ট_নেম' দিয়ে get_posts ব্যবহার করতে পারবেন না। আইইভ পরিবর্তিত মার্টেনস ফাংশনটি কিছুটা:

function get_post_id_by_slug( $slug, $post_type = "post" ) {
    $query = new WP_Query(
        array(
            'name'   => $slug,
            'post_type'   => $post_type,
            'numberposts' => 1,
            'fields'      => 'ids',
        ) );
    $posts = $query->get_posts();
    return array_shift( $posts );
}

অতিরিক্ত কর্মক্ষমতা জন্য আমি 'no_found_rows' => trueget_posts আর্গুমেন্ট যোগ করুন ।
— ফিলিপ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.