হ্যাঁ, এটি সম্ভব, তবে যদি প্লাগইনটি rewrite => array('slug' => 'post_type')
প্যারামিটারটি ব্যবহার করে একটি কাস্টম পোস্ট প্রকার তৈরি করে , তবে সম্ভবত আপনি স্লাগটি প্রতিস্থাপন করতে সক্ষম হবেন না।
যখনই কাস্টম পোস্টের প্রকারগুলি তৈরি করা হয় তখন ইউআরএল পুনর্লিখনের নিয়মগুলি ডাটাবেসে লেখা হয়। কোন ক্রিয়াটি কাস্টম পোস্ট প্রকারের (যেমন ডিআইডি অ্যাকশন) তৈরির সূত্রপাত করে তার উপর নির্ভর করে , আপনি কী কী পরিবর্তন করার চেষ্টা করছেন তা বিবেচনা না করে ওয়ার্ডপ্রেস পুনর্লিখনের নিয়মগুলি পুনরায় লেখবে এবং কাস্টম পোস্টের ধরণের স্লাগগুলি পুনরুদ্ধার করবে।
এটি বলেছে, আপনি কাস্টম পোস্ট ধরণের জন্য কাস্টম স্লাগগুলি সরবরাহ করতে পারেন। নিম্নলিখিত উদাহরণটি ধরে নেওয়া হয়েছে যে আপনার একটি কাস্টম পোস্ট ধরণের রয়েছে movies
এবং আপনি /movies/
স্লাগটি পরিবর্তন করার চেষ্টা করছেন /films/
।
সম্পূর্ণ হওয়ার জন্য, এখানে movies
কাস্টম পোস্টের ধরণটি সংজ্ঞায়িত করতে ব্যবহৃত মূল কাজটি রয়েছে । আপনি যে প্লাগইনটি উল্লেখ করছেন সেটি এমন কিছু করা উচিত:
function movies_register_post_type() {
register_post_type(
'movies',
array(
'labels' => array(
'name' => __('Movies'),
'singular_name' => __('Movie')
),
'public' => true,
'has_archive' => true,
'rewrite' => array(
'slug' => 'movies'
)
)
);
} // end example_register_post_type
add_action('init', 'movies_register_post_type');
বিদ্যমান পোস্টের প্রকারের ভিত্তিতে নিজস্ব কাস্টম বিধিগুলি সরবরাহ করে আপনি বিকল্প সারণিটি সংশোধন করতে পারেন।
মূলত, আমরা এটি করব:
- বিদ্যমান নিয়মগুলির সেটটি নিন এবং তারপরে আমাদের নিজস্ব কাস্টম স্লাগগুলি নিয়ে আমাদের নিজস্ব লিখুন
- নতুন নিয়মটিকে কাস্টম পোস্টের ধরণের স্লাগের চেয়ে বেশি অগ্রাধিকার দিন
আপনি কীভাবে এটি করতে পারেন তা এখানে:
function add_custom_rewrite_rule() {
// First, try to load up the rewrite rules. We do this just in case
// the default permalink structure is being used.
if( ($current_rules = get_option('rewrite_rules')) ) {
// Next, iterate through each custom rule adding a new rule
// that replaces 'movies' with 'films' and give it a higher
// priority than the existing rule.
foreach($current_rules as $key => $val) {
if(strpos($key, 'movies') !== false) {
add_rewrite_rule(str_ireplace('movies', 'films', $key), $val, 'top');
} // end if
} // end foreach
} // end if/else
// ...and we flush the rules
flush_rewrite_rules();
} // end add_custom_rewrite_rule
add_action('init', 'add_custom_rewrite_rule');
এখন, আপনার মুভিগুলি অ্যাক্সেস করার দুটি উপায় রয়েছে:
/movies/Back-To-The-Future
/films/Back-To-The-Future
মনে রাখবেন যে, আমি hooking সুপারিশ করি না add_custom_rewrite_rule
বা init
যেমন খুব ঘন ঘন আগুন দেবেন কর্ম। এইটা শুধুমাত্র একটা উদাহরণ. ফাংশনটি প্রয়োগ করার আরও ভাল জায়গাটি থিম অ্যাক্টিভেশন, প্লাগইন অ্যাক্টিভেট, সম্ভবত সেভ_পোস্ট অ্যাকশন ইত্যাদির উপর নির্ভর করে আপনার যা করা দরকার তার উপর নির্ভর করে আপনার কেবল একবার বা মাত্র কয়েকবার গুলি চালানোর প্রয়োজন হতে পারে।
এই মুহুর্তে, আপনি ' /movies/
স্লাগ ব্যবহার করতে কাস্টম পোস্ট টাইপের জন্য পারমালিকগুলি আপডেট করার বিষয়টি বিবেচনা করতে পারেন । উদাহরণস্বরূপ, আপনি যদি নেভিগেট করেন তবে আপনি /films/
আপনার সমস্ত চলচ্চিত্রের একটি তালিকা দেখতে পাবেন তবে শিরোনামের উপর ঘোরানো প্রকাশিত হবে যে /movies/
স্লাগটি এখনও ব্যবহৃত হচ্ছে।
আরও এক ধাপ এগিয়ে যাওয়ার জন্য, আপনি সমস্ত লিঙ্কগুলিকে /movies/
তাদের /films/
পাল্টা দিকে পুনঃনির্দেশ করার জন্য প্রযুক্তিগতভাবে 301 টি পুনর্নির্দেশের নির্দেশ দিতে পারেন তবে আপনি যা করার চেষ্টা করছেন তার উপর এটি নির্ভর করে।