Özel bir yazı türüne özel bir toplu işlem eklemek istiyorum. Ben filtrenin geldi bulk_actions-screenid
, onun uygun dokümantasyon , ben dilek tam olarak yapardı . Ancak, yaklaşık iki saat hata ayıklama sonra // This filter can currently only be used to remove actions.
class-wp-list-table.php 278 satırında aşağıdaki yorumu buldum - harika!
Bir seçenek olarak eylem enjekte etmek için jQuery kullanarak kesmek olabilir düşündüm
/**
* 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
}
Bu çalışıyor. İşlem artık toplu işlemler menüsünde görünür. Daha sonra admin_init
gerekli işlemleri yapmak için bazı mantık ekleyebileceğim varsayımı altındaydım - ancak, create_invoice
hiç gönderilmedi. Yanlış yaptığım bir şey var mı?
=== GÜNCELLEME ===
load-*
Kancayı kullanmak için kodu güncelledim . Users.php üzerinde toplu işlemi uyguladığımda - create_invoice
istek üzerinden geçtiğini görüyorum . Ancak edit.php create_invoice
üzerinde hiçbir zaman yazdırılmaz.
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');