কোন হুক পুনঃনির্দেশযুক্ত একটি ক্রিয়া যুক্ত করতে ব্যবহার করা উচিত?


16

আমি একটি প্লাগইন তৈরি করতে চাই যা একই পৃষ্ঠার জন্য একটি নতুন ক্যোয়ারী স্ট্রিং তৈরি করতে কোয়েরি স্ট্রিং থেকে নির্দিষ্ট url প্যারামগুলিকে ধরে ফেলে। আমি দুর্দান্ত পেশাদার ওয়ার্ডপ্রেস প্লাগিন ডেভলপমেন্ট বইটি অনুসরণ করছি, তবে আমি নিশ্চিত নই যে এই ক্রিয়াটির জন্য কোন হুকটি ব্যবহার করা উচিত। এখানে আমার ক্রিয়াকলাপটি রয়েছে:

add_action( 'init', 'tccl_redirect' );
function tccl_redirect() {
    header ( "Location: http://www.mysite.com/$mypage?$newparam=$newvalue" );
?>

কোন হুক শিরোলেখ পুনঃনির্দেশের জন্য উপযুক্ত?


আপনি কি চূড়ান্ত ইউআরএল বা ডাব্লুপিউকিউয়ারি-তে ব্যবহৃত ভেরিয়েবলগুলি পরিবর্তন করতে চান?
scribu

আপনার পোস্ট করা কোডটি মূলত প্রতিটি পৃষ্ঠাকে পুনর্নির্দেশ করবে, আপনি কি চান? কোন পরিস্থিতিতে এই পুনর্নির্দেশটি হওয়া উচিত? দ্রষ্টব্য: যাইহোক আমি কায়সারকে +1 করেছি, template_redirectআমার পরামর্শও হবে।
t31os 14

স্ক্রিবু, আমি চূড়ান্ত url এবং ক্যোয়ারী স্ট্রিং পরিবর্তন করতে চাই।
jnthnclrk

t31os, আমি প্রশ্নের জন্য আমার কোডটি সরলীকৃত করেছি। আসল জিনিসটিতে আরও শর্ত রয়েছে।
jnthnclrk

ফলাফল কি ছিল? একটি সমাধান pls চিহ্নিত করুন।
কায়সার

উত্তর:


13

কায়জারের মতো উত্তর দেওয়া হুকটি template_redirectপুনঃনির্দেশের জন্য সত্যই উপযুক্ত।

এছাড়াও আপনার wp_redirect()শিরোনাম সেট করার চেয়ে ফাংশন ব্যবহার করা উচিত ।


এই পরামর্শের জন্য ধন্যবাদ, ডাব্লুপি_ড্রাইরেক্ট কেন পছন্দনীয় তা জানতে কিছু মনে করবেন না: ওয়ার্ডপ্রেস.স্ট্যাকেক্সেঞ্জ
ডটকম

17

আমি বলব template_redirect। তবে অ্যাকশন রেফারেন্সটি একবার দেখুন

উদাহরণ

exit()পুনর্নির্দেশ করতে ভুলবেন না

/**
 * This example redirects everything to the index.php page
 * You can do the same for the dashboard with admin_url( '/' );
 * Or simply base the redirect on conditionals like 
 * is_*() functions, current_user_can( 'capability' ), globals, get_current_screen()...
 * 
 * @return void
 */
function wpse12535_redirect_sample() {

    exit( wp_redirect( home_url( '/' ) ) );

}

add_action( 'template_redirect', 'wpse12535_redirect_sample' );

8

তবে আমি বলব কাইজারের এই উদাহরণটি কাজ করতে পারে না, কারণ এই হুক টেমপ্লেট_ড্রাইরেক্টের পুনঃনির্দেশের পরে বার বার কাজ করা আপনার অবিরাম ফরোয়ার্ডিং হবে !

আপনি যদি ইতিমধ্যে হোমপৃষ্ঠে রয়েছেন তবে এটি পরীক্ষা করা আরও ভাল:

function wpse12535_redirect_sample() {

    $current_url = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
    $site_url = get_bloginfo('siteurl') . "/";

    if($current_url != $site_url)       
      exit( wp_redirect( home_url( '/' ) ));    

}
add_action( 'template_redirect', 'wpse12535_redirect_sample');

আমার জন্য কাজ করে। কোনও পরামর্শ? শুভেচ্ছা সহ!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.