404 যুক্তি বদলে এমন কোনও হুক আছে কি?


27

যদি আপনার থিমটিতে 404 পৃষ্ঠা সংজ্ঞায়িত থাকে তবে ওয়ার্ডপ্রেস 404 পৃষ্ঠা প্রদর্শন করবে যদি "ট্যাগ" $ wp_query-> ক্যোয়ারী_ভারগুলিতে সংজ্ঞায়িত করা হয়, এবং সেই ট্যাগটির সাথে মেলে এমন কোনও পোস্ট নেই।

আমি একটি প্লাগইন লিখছি যা পোস্টগুলি ছাড়াও প্রতিটি পৃষ্ঠায় কিছু তথ্য প্রদর্শন করে। আমি 404 যুক্তিটি পরিবর্তন করতে চাই যাতে কোনও ট্যাগের সাথে মেলে এমন কোনও পোস্ট না থাকলে 404 পৃষ্ঠাটি প্রদর্শিত হয় এবং প্লাগইন সেই ট্যাগটির সাথে মেলে এমন কোনও ডেটা টেনে নিতে পারে না। প্লাগইন যদি ডেটা সন্ধান করতে পারে তবে আমি সেই পৃষ্ঠায় পোস্ট রয়েছে কিনা তা নির্বিশেষে একটি সাধারণ পৃষ্ঠা দেখাতে চাই ...

আমি গুগলিং করছি, কোড পড়ছি, কোডেক্স পড়ছি, এবং এখানে ঘুরে বেড়াচ্ছি, এবং ওয়ার্ডপ্রেস কোথায় এই 404 ট্রিগার করে এবং কীভাবে আমি এটি ওভাররাইড করতে পারি তা বুঝতে পেরেছি না। (আমার মনে হয় এটি ফাংশন.এফপি-তে স্ট্যাটাস_হেডার () এর সাথে কিছু করতে পারে তবে এটি কীভাবে এবং কখন আমাকে এতে প্রবেশ করতে হবে তা পরিষ্কার নয়)।

যে কোনও সহায়তা / ধারণা / আলোকিতকরণ প্রশংসিত।

ধন্যবাদ,

~ প্যাচ

উত্তর:


29

কোড এবং গুগলিংয়ের মাধ্যমে আরও কিছুটা স্লোগান দেওয়ার পরে আমি উত্তরটি পেয়েছি। এটি এই থ্রেডে অন্তর্ভুক্ত রয়েছে (অটো 42 এর পোস্ট দেখুন) তবে রেকর্ডের জন্য আপনার প্লাগইনে নিম্নলিখিতটি যুক্ত করা আপনার নির্দিষ্ট শর্তগুলির জন্য 404 হ্যান্ডলিংকে ওভাররাইড করবে:

add_filter('template_redirect', 'my_404_override' );
function my_404_override() {
    global $wp_query;

    if (<some condition is met>) {
        status_header( 200 );
        $wp_query->is_404=false;
    }
}

নোট করুন যে পিএইচপি আউটপুট শিরোনামের আগে আপনাকে "is_404" সেট করতে হবে, এ কারণেই এটিকে টেমপ্লেট_ড্রাইরেক্ট লজিকে হুক করা ভাল ধারণা।

~ প্যাচ


5

আমার একটি কাস্টম প্রকল্পের জন্য একই কাজ করার দরকার ছিল যেখানে সর্বদা 200 পৃষ্ঠাগুলি ছিল এবং আপনি দেখতে পেয়েছেন যে এটি কেবল আপনার টেম্পলেট ফাইলের শীর্ষে (get_header () উপরে) যোগ করতে পারেন

global $wp_query;
status_header( 200 );
$wp_query->is_404=false;

1
গ্রেট! এটি আমার পক্ষে কাজ করেছে। আমি আমার স্ক্রিপ্ট তৈরি করছিলাম এবং এটি 404 জেনারেট করেছিল w এটি আমার জন্য কাজ করেছে:// configuration require('./wp-load.php'); // init WP (inits objects, language and stuff). wp(); // fix title (this is not 404) $wp_query->is_404 = false; // doesn't fix the actual 404 status status_header( 200 ); // but this does :-)
নাক্স

1

404.phpআপনার থিমে টেমপ্লেট ফাইল তৈরি করুন এবং প্রয়োজন অনুসারে কাস্টমাইজ করুন (আপনার প্লাগইন আউটপুট বা যা কিছু যোগ করুন)। আপনি আপনার থিমে সংজ্ঞায়িত উল্লেখ করেছেন , আপনার জন্য এই পদ্ধতির সাথে ঠিক কী ভুল?

কোডেক্স একটি ত্রুটি 404 পৃষ্ঠা তৈরি করছে


আমি যা খুঁজছি হ'ল 404 পৃষ্ঠাটি ট্রিগার হয়ে যাওয়ার পরিস্থিতিতে পরিস্থিতি পরিবর্তন করার একটি উপায়। এই মুহুর্তে, ওয়ার্ডপ্রেস কোয়েরি ওয়ার্সে কোনও ট্যাগের সাথে মেলে এমন কোনও পোস্ট খুঁজে না পেয়ে, 404 পৃষ্ঠা প্রদর্শিত হবে। আমি কিছু অতিরিক্ত কোড ফেলে যেতে চাই যা 404 পৃষ্ঠাটি কেবল তখনই প্রদর্শিত হবে যদি ওয়ার্ডপ্রেস কোনও পোস্ট খুঁজে না পায় এবং আমার প্লাগইন প্রদর্শন করার জন্য কোনও পরিপূরক তথ্য খুঁজে না পায়।
পঞ্চম

404 এর উদ্দেশ্য ভিজিটর লিংকটি ভুল এবং আপনার এটিতে লগ এবং ঠিক করার জন্য (যদি প্রয়োজন হয়) is আপনি দর্শনার্থীকে না বলতে চান যে তিনি ভাঙা লিঙ্কটি ব্যবহার করছেন বা নিজেই সে সম্পর্কে সচেতন হন। 404 এর উপর তথ্য প্রদর্শন ঠিক কাজ করে, হাইজ্যাক করা এটি প্রয়োজনীয় নয়, তবে কেন বিরক্ত করবেন? আপনার যুক্তি এবং / বা প্রযুক্তিগত বিষয়গুলি উপলব্ধি করার চেষ্টা করছি।
রাস্তার

1
পৃষ্ঠাগুলি কী "ভুল" তা সংজ্ঞায়িত করার জন্য আমি যা খুঁজছিলাম। আমি যে সাইটটি তৈরি করছি তাতে একটি ব্লগ উপাদান রয়েছে তবে এটি সমস্ত সাইট নয়। আমি ওয়ার্ডপ্রেস ট্যাগগুলি ওয়ার্ডপ্রেস পোস্টগুলি প্রদর্শন করতে এবং প্লাগইনটির মাধ্যমে অতিরিক্ত সামগ্রী টানতে ব্যবহার করছি। আমি 200 টি স্ট্যাটাস কোড ফিরিয়ে দিতে চাই যদি হয় ক) পোস্ট রয়েছে বা খ) আমার প্লাগইনটি ট্যাগের সাথে মেলে এমন প্রদর্শন করার জন্য স্টাফ পেতে পারে। এইভাবে যুক্তি পুনর্বিবেচনার প্রয়োজন। নির্বিশেষে, একটি উত্তর লেখার জন্য সময় দেওয়ার জন্য আপনাকে ধন্যবাদ - দুঃখিত যে আমার সমস্যাটি আরও জড়িত উত্তরের প্রয়োজনের জন্য যথেষ্ট অদ্ভুত ছিল :-)
প্যাচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.