কেবলমাত্র স্লাগ থেকে কাস্টম পোস্ট ধরণের পোস্ট আইডি গ্রহন করা সম্ভব?
আমি যতটা জানি আমরা শিরোনাম ব্যবহার করে আইডি থেকে পেতে পারি। তবে একটি কাস্টম পোস্টের ধরণে একই শিরোনাম থাকতে পারে তাই স্লাগগুলি অনন্য হওয়ায় এটি কি সম্ভব?
কেবলমাত্র স্লাগ থেকে কাস্টম পোস্ট ধরণের পোস্ট আইডি গ্রহন করা সম্ভব?
আমি যতটা জানি আমরা শিরোনাম ব্যবহার করে আইডি থেকে পেতে পারি। তবে একটি কাস্টম পোস্টের ধরণে একই শিরোনাম থাকতে পারে তাই স্লাগগুলি অনন্য হওয়ায় এটি কি সম্ভব?
উত্তর:
আপনি ব্যবহার করতে পারেন get_page_by_path()
- নামটি আপনাকে বোকা বানাবেন না, তৃতীয় যুক্তি হ'ল পোস্টের ধরণ:
if ( $post = get_page_by_path( 'the_slug', OBJECT, 'post_type' ) )
$id = $post->ID;
else
$id = 0;
আপনি যদি কয়েক দিন অপেক্ষা করেন এবং ওয়ার্ডপ্রেস ৪.৪-এ আপগ্রেড করেন যা December ই ডিসেম্বর প্রকাশিত হবে ( এএফআইএইসি ), আপনি নতুন post_name__in
প্যারামিটারটি ব্যবহার করতে পারেন যাতে WP_Query
স্লাগগুলির অ্যারে লাগে
আপনার যদি সম্পূর্ণ পোস্ট অবজেক্টের প্রয়োজন হয়
$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 );
post_name
সম্পত্তি এবং category_name
পরামিতিগুলির মতোই ভুল , যা হওয়া উচিত ছিল slug
এবং নাওname
আপনি যদি কেবল পোস্ট আইডি চান তবে এটি একটি লাইনে কৌশলটি করবে।
url_to_postid( site_url('the_slug') );
url_to_postid
একটি খুব নমনীয় ফাংশন: আপনি পার্মালিঙ্ক / সম্পূর্ণ URL যে কোন ধরণের পাস এবং যে URL এর জন্য সবচেয়ে সঠিক পোস্ট আইডি পেতে পারেন। তবে নমনীয় ব্যবহারের কারণে এটি বেশ ধীরে ধীরে (উদাহরণস্বরূপ অনেকগুলি শেষ পয়েন্ট / পোস্ট-টাইপ সহ)। আপনি যদি কেবল কোনও নির্দিষ্ট পোস্ট ধরণের জন্য স্লাগে পাস করেন তবে এটি ব্যবহার করা অনেক দ্রুতget_page_by_path()