স্লাগ থেকে কাস্টম পোস্ট টাইপ পোস্ট আইডি কীভাবে পাবেন?


18

কেবলমাত্র স্লাগ থেকে কাস্টম পোস্ট ধরণের পোস্ট আইডি গ্রহন করা সম্ভব?

আমি যতটা জানি আমরা শিরোনাম ব্যবহার করে আইডি থেকে পেতে পারি। তবে একটি কাস্টম পোস্টের ধরণে একই শিরোনাম থাকতে পারে তাই স্লাগগুলি অনন্য হওয়ায় এটি কি সম্ভব?

উত্তর:


40

আপনি ব্যবহার করতে পারেন get_page_by_path()- নামটি আপনাকে বোকা বানাবেন না, তৃতীয় যুক্তি হ'ল পোস্টের ধরণ:

if ( $post = get_page_by_path( 'the_slug', OBJECT, 'post_type' ) )
    $id = $post->ID;
else
    $id = 0;

7

আপনি যদি কয়েক দিন অপেক্ষা করেন এবং ওয়ার্ডপ্রেস ৪.৪-এ আপগ্রেড করেন যা December ই ডিসেম্বর প্রকাশিত হবে ( এএফআইএইসি ), আপনি নতুন post_name__inপ্যারামিটারটি ব্যবহার করতে পারেন যাতে WP_Queryস্লাগগুলির অ্যারে লাগে

EXAMPLE টি

আপনার যদি সম্পূর্ণ পোস্ট অবজেক্টের প্রয়োজন হয়

$args = [
    'post_type'      => 'my_custom_post_type',
    'posts_per_page' => 1,
    'post_name__in'  => ['post-slug']
];
$q = get_posts( $args );
var_dump( $q );

আপনার যদি কেবল আইডি দরকার হয়

$args = [
    'post_type'      => 'my_custom_post_type',
    'posts_per_page' => 1,
    'post_name__in'  => ['post-slug'],
    'fields'         => 'ids' 
];
$q = get_posts( $args );
var_dump( $q );

চমৎকার, তবে স্লাগ দ্বারা একটি পোস্ট পেতে সম্ভবত কিছুটা নিবিড়? কেন তারা এই বৈশিষ্ট্যটি যুক্ত করলেন !?
TheDeadMedic

1
@TheDeadMedic মাইটি কিছুটা নিবিড় হতে হবে হ্যাঁ, এটিতে সত্যিকারের পারফরম্যান্স পরীক্ষা করা হয়নি, কেবলমাত্র বিকল্পের উপায় হিসাবে যুক্ত করা হয়েছে ;-)। কেন, আমি সত্যিই জানি না, এমন একটি দুর্দান্ত-অপ্রয়োজনীয় জিনিসগুলির মতো দেখায় যা ওয়ার্ডপ্রেস এত বিখ্যাত famous নামকরণ কনভেনশন, আইএমএইচওও ঠিক তেমনি post_nameসম্পত্তি এবং category_nameপরামিতিগুলির মতোই ভুল , যা হওয়া উচিত ছিল slugএবং নাওname
পিটার গুসেন

ভাল
লাগল

1
@TheDeadMedic আমার পদ্ধতি এবং আপনার পদ্ধতির মধ্যে কোনও সময়ের পার্থক্য নেই। আমাদের প্রতিটি প্রশ্নের চালাতে আমি ক্রমাগত 0.002 এবং 0.005 সেকেন্ডের মধ্যে পাই। এছাড়াও, উভয় পদ্ধতিই 1 টি ক্যোয়ারী চালায়। ;-)
পিটার গুসেন

1
@TheDeadMedic আমার সবেমাত্র পিএইচপি করার মতো কাজ কম ছিল - হ্যাঁ, অবশ্যই, সম্পূর্ণ একমত। বিকল্পগুলি জানার জন্য এটি সর্বদা দুর্দান্ত ( যদিও এটি কখনও কখনও সেরা নাও হতে পারে ) এবং কিছু ধরণের মানদণ্ড রয়েছে। উপভোগ করুন ;-)
পিটার গুসেন

5

আপনি যদি কেবল পোস্ট আইডি চান তবে এটি একটি লাইনে কৌশলটি করবে।

url_to_postid( site_url('the_slug') );

1
url_to_postidএকটি খুব নমনীয় ফাংশন: আপনি পার্মালিঙ্ক / সম্পূর্ণ URL যে কোন ধরণের পাস এবং যে URL এর জন্য সবচেয়ে সঠিক পোস্ট আইডি পেতে পারেন। তবে নমনীয় ব্যবহারের কারণে এটি বেশ ধীরে ধীরে (উদাহরণস্বরূপ অনেকগুলি শেষ পয়েন্ট / পোস্ট-টাইপ সহ)। আপনি যদি কেবল কোনও নির্দিষ্ট পোস্ট ধরণের জন্য স্লাগে পাস করেন তবে এটি ব্যবহার করা অনেক দ্রুতget_page_by_path()
ফিলিপ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.