একটি নতুন পোস্ট তৈরি করার সময় কেন save_post ক্রিয়াকলাপে আগুন লাগবে?


31

আমি save_postঅ্যাডমিন ড্যাশবোর্ডের "নতুন পোস্ট" লিঙ্কটিতে ক্লিক করার পরে আমি যে ক্রিয়াকলাপটিকে অ্যাকশন থেকে সরিয়েছি তা দেখে আমি অবাক হয়েছি । দ্রষ্টব্য - এই আমি চাপা করেছি Saveবা Update, এবং এটি অবিলম্বে আগুন, একটি ব্যায়িত সময় বা স্বয়ংক্রিয় আপডেটের পরে না।

অন্যদিকে, আমি যখন তখন কোনও কিছু টাইপ করি এবং Publishবা Updateবা Save Draftবোতামগুলি টিপব তখন আমি আমার অ্যাকশন হ্যান্ডলারের অভ্যন্তরে প্রতিধ্বনিত প্রতিধ্বনিটি প্রতিধ্বনিত হয় না, তাই দেখা যাচ্ছে যে অন্য কোনও সময় অ্যাকশনটি গুলি চালাচ্ছে না। এটি সম্পর্কিত নাও হতে পারে।

আমার কোডটি এখানে:

add_action('save_post', 'MyNS\save_event_metabox', 10, 2);
function save_event_metabox($post_id, $post){
  echo "<h1>YES!</h1>";
}

এই হ্যাঁ প্রতিধ্বনি যখন আমি "নতুন পোস্ট" লিঙ্কটি চাপুন কিন্তু echo না যখন আমি কিছু এবং তারপর টিপুন (পৃষ্ঠার উপরের) Updateবা Publishবা Save Draft। এটি save_postক্রিয়া এবং wp_insert_post()ফাংশন সম্পর্কিত ডকুমেন্টেশনের বিরোধিতা করে বলে মনে হচ্ছে ।

কেউ কি আমার জন্য এটি পরিষ্কার করতে পারেন?


অসাধারণ!!! কাস্টম মেটাবক্স ক্ষেত্রগুলি সংরক্ষণ করার সময় আমি একই পরিস্থিতিতে চলে আসছি। কোন ধারণা আমি কি ব্যবহার করতে পারি ??
প্রসথ নাদরাজাহ

উত্তর:


39

আপনি যখন 'নতুন পোস্ট' ক্লিক করেন, আপনি কেবল পৃষ্ঠাটি লোড করছেন wp-admin/post-new.php

এটি করার মাধ্যমে, ওয়ার্ডপ্রেস সর্বদা একটি নতুন পোস্ট তৈরি করবে (একটি 'অটো ড্রাফ্ট') অন্য সমস্ত বৈশিষ্ট্যগুলি (যেমন মিডিয়া আপলোডের মতো) এবং প্লাগইনগুলি স্বাভাবিক হিসাবে কাজ করে তা নিশ্চিত করার জন্য, আপনি আসলে কোনও খসড়া সংরক্ষণ বা পোস্ট প্রকাশের আগেই।

এবং এই, ঘুরে, ট্রিগার save_post। সুতরাং আপনার প্রতিধ্বনি।

ঠিক আছে, তাই আপডেট বা প্রকাশের সময় আমি কেন প্রতিধ্বনি পাই না?

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

অন্য কথায়;

  1. আপনি ক্লিক করুন UpdateবাPublish
  2. ব্রাউজার সার্ভারে ডেটা প্রেরণ করে
  3. ওয়ার্ডপ্রেস এটি পরিচালনা করে এবং প্রক্রিয়াটি ট্রিগার করে save_post
  4. ওয়ার্ডপ্রেস কোনও ব্রাউজার আউটপুট (আপনার প্রতিধ্বনি সহ) সংঘটিত হওয়ার আগেই পুনঃনির্দেশ শিরোনামটি ফেরত পাঠায় এবং প্রস্থান করে *
  5. ব্রাউজার পুনঃনির্দেশ অনুসরণ করে এবং 'সম্পাদনা পোস্ট' পৃষ্ঠাটি লোড করে।

পুনঃনির্দেশটি অপ্রয়োজনীয় বলে মনে হতে পারে (যেহেতু আপনি কেবল POSTএকই পৃষ্ঠায় যেতে পারেন) তবে এটি পোস্ট / পুনঃনির্দেশ / ডুপ্লিকেট ফর্ম জমাগুলি এড়ানোর জন্য পান এমন কৌশলটির অংশ ।

যদি আপনি কোনও ফাংশন হুক করা হয় তার ফলাফলের ভিত্তিতে কাস্টম বার্তাগুলি মুদ্রণের চেষ্টা করছেন save_post, এই প্রশ্নগুলি / উত্তরগুলি দেখুন

* কঠোরভাবে সত্য নয়, আপনার প্রতিধ্বনি প্রকৃতপক্ষে পুনর্নির্দেশ শিরোনাম প্রেরণের আগেই ঘটবে, তবে ব্রাউজারটি এটিকে বাতিল করে দেবে, বা জিনিসগুলি এত তাড়াতাড়ি ঘটে যা এটি কখনই রেন্ডার করে না।


বিশিষ্ট। যেমন একটি সম্পূর্ণ এবং বিস্তারিত উত্তরের জন্য ধন্যবাদ! আরও শেখার স্বার্থে, আপনি এই জ্ঞানটি প্রথম স্থানে কিভাবে এসেছিলেন?
টম অ্যাগার

আপনি যে একই হতাশার মুখোমুখি হয়েছিলেন তার মধ্য দিয়ে;) একটি ভাল আইডিই ধরুন (আমি পিএইচপিডিজাইনার ব্যবহার করি) এবং কেবল প্রাসঙ্গিক অ্যাডমিন ফাইল (গুলি) এ অনুসন্ধান করুন।
TheDeadMedic

1
ঠিক আছে ভাই। আপনার দক্ষতার সাথে সেখানে থাকার জন্য ধন্যবাদ!
টম অাগার

অসাধারণ তথ্য। আমি বাদাম যাচ্ছিলাম কারণ আমার স্থানীয় সার্ভারে এটি "ওকে" কাজ করে বলে মনে হয়েছিল, তবে আমার প্রোডাকশন সার্ভারে নয় ... আমার স্থানীয় সার্ভারে দেখে মনে হচ্ছে এটি পোস্ট / পুনঃনির্দেশ / কৌশলটি সঠিকভাবে প্রয়োগ করছে না কারণ এটি ছিল না পুনঃনির্দেশ শিরক পাঠানো (কেন জানি না)।
ওয়েবম্যাচেটর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.