나는 사용자 정의 포스트 유형에 사용자 정의 대량 작업을 추가하고 싶습니다. 나는 필터를 통해 온 bulk_actions-screenid
, 그에 따라 문서 , I 소원대로 정확하게 할 것입니다 . 그러나 디버깅 약 2 시간 후에 나는 다음과 같은 코멘트를 발견 // This filter can currently only be used to remove actions.
좋은 - 클래스 WP-리스트 table.php 라인 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-*
훅을. 내가 users.php에 대량 작업을 적용 할 때 - 내가 볼 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');