カスタムバルクアクションをカスタム投稿タイプに追加したいと思います。フィルターbulk_actions-screenidに出くわしました。その文書によれば、希望通りにできます。しかし、約2時間のデバッグの後// This filter can currently only be used to remove actions.、class-wp-list-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');