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


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.