পুনর্লিখনের নিয়মগুলি সঠিকভাবে ফ্লাশ হচ্ছে না তা নিয়ে আমার কিছুটা অদ্ভুত সমস্যা হচ্ছে।
আমি ব্যবহার করার চেষ্টা করেছি flush_rewrite_rules();
এবং flush_rewrite_rules(true);
।
আমি এবং $wp_rewrite
ব্যবহার করে বিশ্বায়নের চেষ্টা করেছি tried$wp_rewrite->flush_rules();
$wp_rewrite->flush_rules(true);
যার মধ্যে দুটিই পুনরায় লেখার নিয়মগুলি সঠিকভাবে ফ্লাশ করছে বলে মনে হচ্ছে না। কল করা হলে সেই কলগুলি পুনরায় লেখার নিয়মগুলি ফ্ল্যাশ করছে। আমি এটা কিভাবে জানি? পুনরায় লেখার নিয়ম ফ্লাশিংয়ের ডিবাগিংয়ের জন্য সমাধানটি ব্যবহার করে ।
বর্তমানে, আমার কাছে প্লাগইন অ্যাক্টিভেশন এবং প্লাগইন নিষ্ক্রিয়করণ সম্পর্কে পুনরায় লেখার নিয়ম রয়েছে। কোন সমস্যা নেই।
ব্যবহারকারীদের প্লাগইনটি কনফিগার করতে আমার কাছে একটি প্লাগইন প্রশাসনের সেটিংস পৃষ্ঠা রয়েছে। কিছু সেটিংস পারমালিঙ্ক কাঠামো সামঞ্জস্য করে, তাই প্লাগইন প্রশাসনের সেটিংস পৃষ্ঠায় "সংরক্ষণ সেটিংস" পৃষ্ঠায় পুনর্লিখনের নিয়মগুলি ফ্লাশ করা দরকার। update_option();
সেটিংস সংরক্ষণের জন্য (মান ব্যবহার করে )।
আমি লক্ষ করতে চাই যে নির্দিষ্ট করা সেটিংসের উপর নির্ভর করে, ব্যবহারকারী নির্দিষ্ট সেটিংসের সাথে মেলে কাস্টম পোস্ট প্রকারগুলি তৈরি করা হয়। সুতরাং সেটিংসটি সংরক্ষণ করার পরে পুনরায় লেখার নিয়মগুলি তত্ক্ষণাত ফ্লাশ করা উচিত। এখানেই জিনিসগুলি যথাযথভাবে কাজ করছে না।
পুনঃলিখনের নিয়মগুলি সরবরাহ করে ডিবাগ করার জন্য উপরের লিঙ্ক সমাধানটি @toscho
প্রদর্শিত হচ্ছে যে এটি পুনরায় লেখার নিয়মগুলি প্রচুর পরিমাণে ফ্লাশ করছে। যাইহোক, কাস্টম পোস্ট টাইপ একক আইটেম, বা এমনকি কাস্টম পোস্ট টাইপ সংরক্ষণাগারটি দেখার জন্য যখন প্রত্যেকটি 404 ত্রুটি হিসাবে ফিরে আসে।
কাস্টম পোস্টের ধরণটি সঠিকভাবে এবং যথাযথভাবে নিবন্ধভুক্ত। আমি নিশ্চিত জানি যে এটি সমস্যা নয়।
তাত্ক্ষণিকভাবে প্লাগইন প্রশাসনের পৃষ্ঠা সেটিংস সংরক্ষণের সাথে অনুসরণ করুন। কাস্টম পোস্টের প্রকারগুলি তৈরি করা হয়, পারমালিঙ্ক কাঠামোটি সামঞ্জস্য করা হয় এবং সমস্ত পুনর্লিখনের নিয়মগুলি ফ্লাশ করার চেষ্টা করা হয়।
এরপরে কাস্টম পোস্টের ধরণগুলি সর্বদা লোড হয় init
এবং সাধারণের মতো লোড হয় ।
কোনও কারণে, পুনর্লিখনের নিয়মগুলি সঠিকভাবে ফ্লাশ হচ্ছে না, কারণ আমি আগেই বলেছি, কাস্টম পোস্ট টাইপের একক বা সংরক্ষণাগার বিভাগগুলিতে গিয়ে 404 ত্রুটি ফিরে আসে।
এখন অদ্ভুত অংশটি, যদি আমি কেবল কিছু করি প্রশাসনিক পারমিলিংকস সেটিংস পৃষ্ঠাতে যান এবং তারপরে কাস্টম পোস্ট ধরণের একক বা সংরক্ষণাগার বিভাগগুলি দেখতে সামনের প্রান্তে ফিরে যান, তারা যাদুকরীভাবে প্রত্যাশার মতো কাজ করে।
প্রশাসন প্রশাসনের সেটিংস পৃষ্ঠাটি কী করে যে আমি তা করছি না যা পুনর্লিখনের নিয়মগুলি যথাযথভাবে ফ্লাশ করতে দেয় এবং আমার তা না করে?
আমি বলতে চাইছি, একটি অস্থায়ী সমাধান হিসাবে, আমি প্লাগইন প্রশাসনের সেটিংস পৃষ্ঠাটি সংরক্ষণ করার পরে ব্যবহারকারীকে প্রশাসনের Permalinks সেটিংস পৃষ্ঠায় পুনর্নির্দেশ করছি, তবে এটি কোনও আদর্শ সমাধান নয়। আমি আমার পুনর্লিখনের নিয়মগুলিকে আমার প্লাগইনের কোডের মধ্যে সঠিকভাবে ফ্লাশ করতে পছন্দ করব।
ওয়ার্ডপ্রেসে একটি নির্দিষ্ট পয়েন্ট রয়েছে যেখানে পুনর্লিখনের নিয়মগুলি ফ্লোশিং করা সমস্ত নিয়মকে আর ফ্লাশ করে না?
admin_menu
- প্লাগইন সেটিংস পৃষ্ঠাটি ওয়ার্ডপ্রেস প্রশাসনে যুক্ত করা হয়েছে।
add_options_page()
- প্লাগইন সেটিংস পৃষ্ঠাটি সেটিংস মেনুতে যুক্ত করা হয়েছে।
এর জন্য কলব্যাকে সেটিংস পৃষ্ঠাটি রেন্ডার করা হয় add_options_page()
। এটি এখানে $_POST
প্লাগইন সেটিংস আপডেট করার জন্য এবং পুনরায় লেখার নিয়মগুলি ফ্লাশ করার জন্য প্রক্রিয়া করা হয়।
যেহেতু এটি ইতিমধ্যে একটি দীর্ঘ প্রশ্ন, আমি একটি বৈধ উত্তর উত্পাদন করতে সহায়তা করতে একটি অফসাইট লিঙ্কে কোড ব্লক (যদি এটি সাহায্য করে) সরবরাহ করতে ইচ্ছুক।
init
যা পোস্টের ধরণের নিবন্ধগুলি রেখেছে। আমি অনুভব করেছি, পৃষ্ঠার সেটিংস সংরক্ষণ করা হচ্ছে এবং পৃষ্ঠাটি পুনরায় লোড হবে ... তারপরে init
প্রয়োজনীয় পোস্টের প্রবন্ধগুলি নিবন্ধ করার জন্য আবার হুক ফায়ার করা হবে। সুতরাং আমি বুঝতে পেরেছি যে পোস্টের প্রকারগুলি ইতিমধ্যে লোড হবে এবং আমার যা করতে হবে তা হ'ল বিকল্পটি আপডেট করতে হবে, তারপরে আমার প্লাগইন সেটিংস পৃষ্ঠা থেকে পুনর্লিখনের নিয়মগুলি ফ্লাশ করুন। আমি কীভাবে একটি সমাধান বের করেছিলাম তার একটি উত্তর পোস্ট করব।
flush_rewrite_rules
, যা কেবলrewrite_rules
বিকল্পটি মুছে ফেলে এবং এটি পুনরায় জেনারেট করে, আপনি ফাইলটি খুলতে পারেন এবং এটিwp-admin/options-permalinks.php
কোথায় ঘটে তা দেখতে পারেন। যেহেতু এই ক্রিয়াকলাপটি কেবল পুরো বিকল্পটি মুছে ফেলে তাই আংশিকভাবে বিধি বিধান করা সম্ভব নয়।