আমি একটি কাস্টম পোস্ট ধরণের একটি কাস্টম বাল্ক অ্যাকশন যুক্ত করতে চাই। আমি ফিল্টার জুড়ে এসেছি bulk_actions-screenid
, যা এর ডকুমেন্টেশন অনুসারে আমার ইচ্ছামতো ঠিক তাই করবে । তবে, প্রায় দুই ঘন্টা ডিবাগিংয়ের পরে আমি // This filter can currently only be used to remove actions.
ক্লাস-ডাব্লুপি-তালিকা-টেবিল.এফপি-র লাইন 278-তে নিম্নলিখিত মন্তব্যটি পেয়েছি - দুর্দান্ত!
আমি অনুভব করেছি যে বিকল্প হিসাবে ক্রিয়াটি ইনজেক্ট করতে jQuery ব্যবহার করে আমি এটি হ্যাক করতে পারি
/**
* Hack to add a custom bulk action.
*/
public function admin_footer() {
if($_GET['post_type'] != self::POST_TYPE) return;
?>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('<option>').val('create_invoice').text('Bill').appendTo("select[name='action']");
});
</script>
<?php
}
এইটা কাজ করে. ক্রিয়াটি এখন বাল্ক অ্যাকশন মেনুতে উপস্থিত হয়। আমি তখন admin_init
প্রয়োজনীয় প্রসেসিং করার জন্য কিছু যুক্তি যুক্ত করতে পারি এই ধারণার অধীনে ছিলাম - তবে এটি প্রদর্শিত create_invoice
হয় না যে কখনও পোস্ট হয় না। আমি কি ভুল করছি কিছু আছে?
=== আপডেট ===
আমি load-*
হুক ব্যবহারের জন্য কোডটি আপডেট করেছি । আমি যখন ব্যবহারকারীদের উপর বাল্ক অ্যাকশন প্রয়োগ করি ph পিপিপি - আমি দেখি create_invoice
যে অনুরোধটি পেরিয়ে গেছে। তবে edit.php create_invoice
এ কখনও মুদ্রিত হয় না।
function a39x2_admin_footer() {
?>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('<option>').val('create_invoice').text('Bill').appendTo("select[name='action']");
jQuery('<option>').val('create_invoice').text('Bill').appendTo("select[name='action2']");
});
</script>
<?php
}
add_action('admin_footer', 'a39x2_admin_footer');
function a39x2_load() {
echo "<pre>" . print_r($_REQUEST, true) . "</pre>";
}
add_action('load-edit.php', 'a39x2_load');
add_action('load-users.php', 'a39x2_load');