wp_redirect () - শিরোনাম ইতিমধ্যে প্রেরিত


10

wp_redirect()পৃষ্ঠায় সফলভাবে একটি সাইনআপ ফর্ম জমা দেওয়ার পরে আমি ব্যবহারকারীকে পুনর্নির্দেশের জন্য ব্যবহার করার চেষ্টা করছি ।

এটি কাজ করছে না এবং নিম্নলিখিত ত্রুটিটি দেখায়:

সতর্কতা: শিরোনাম তথ্য পরিবর্তন করতে পারে না - ইতিমধ্যে / অ্যাপ্লিকেশন / এমএএমপি / এইচটিডোকস / থিম / ডাব্লু- 1178 লাইনে / প্লাগেবল.এফপি অন্তর্ভুক্ত

আমি বুঝতে পেরেছি যে এর আগেও আউটপুট হয়েছে, সে কারণেই এটি কাজ করছে না, তবে এই কাজটি কীভাবে করা যায় সে সম্পর্কে আমার কোনও ধারণা নেই।

সাইনআপ ফর্মটি একটি ফাংশন দ্বারা রেন্ডার হয়ে যায় এবং আমার ফাংশন.এফপি এর ভিতরে অন্য একটি ফাংশন দ্বারা জমা দেওয়া হয়।

if ( isset( $_POST['subscribe'] ) ) {
    // Submits the form and should then redirect
    wp_redirect("/thank-you/");
    exit;
}

তারপরে এই দুটি ফাংশনই ব্যবহৃত হয় যেখানে আমি সাইনআপ ফর্মটি দেখাতে চাই।

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

উত্তর:


16

উত্তর খুঁজে পেয়েছি (মাধ্যমে)

ফাংশনটি ব্যবহার না করে আমি "wp_loaded" এ একটি ক্রিয়া যুক্ত করেছি, এটি নিশ্চিত করে যে কোনও শিরোনাম প্রেরণের আগে এটি লোড হয়ে যায়।

<?php
add_action ('wp_loaded', 'my_custom_redirect');
function my_custom_redirect() {
    if ( isset( $_POST['subscribe'] ) ) {
        $redirect = 'http://example.com/redirect-example-url.html';
        wp_redirect($redirect);
        exit;
    }
}     
?>

এটি ত্রুটি থেকে মুক্তি পেয়েছে তবে পোস্টটি সংরক্ষণ হয়নি!
সুব্রত সরকার

6

আপনাকে wp_redirect() আগে ব্যবহার get_header() করতে হবে তারপরে এটি শিরোনাম ত্রুটি প্রদর্শন করবে না।


3
add_action('template_redirect', function(){
if(isset($_POST['subscriptio'])){// make this condition such that it only matches when a registraiotn form get submitted
/**
 * do your stuff here
 */
wp_redirect();//....
}
});

সহায়তার জন্য ধন্যবাদ, কিন্তু এই কোডটি আমার পক্ষে কার্যকর হয়নি। এটি কাজ করার জন্য "ডাব্লুপিএললোড" এ অ্যাকশন যুক্ত করা দরকার (আমার উত্তর দেখুন)
স্নোবল

is_page_template()শর্তসাপেক্ষে পুনর্নির্দেশের সময় আপনার যদি প্রয়োজন হয় তবে ভাল কাজ করে ।
আইনশূন্য

1

আপনি এটি করতে পারেন

নীচের লাইনের পরিবর্তে

wp_redirect ( "$ URL");

লেখার

echo("<script>location.href = '".$url."'</script>");

অথবা

<?php <script><?php echo("location.href = '".$url."';");?></script>?>

এটি অবশ্যই আপনার সমস্যার সমাধান করবে।

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