web-dev-qa-db-fra.com

le bouton d'action en bloc wp_list_table ne fonctionne pas - pas de soumission

J'ai un wp_list_table personnalisé pour créer ma propre table. Presque tout fonctionne parfaitement, mais le bouton d'action en vrac semble ne pas fonctionner. C'est bien affiché, mais au clic rien ne se passe. Je pense qu'il manque en quelque sorte un wrapper de formulaire ou juste du javascript? J'ai ajouté le bouton décrit sur wp-engineeers: http://wpengineer.com/2426/wp_list_table-a-step-by-step-guide/#bulk

Mes fonctions Bulk-action:

function get_bulk_actions() {
    $actions = array(
        'activate'    => __('Show'),
        'deactivate'  => __('Hide')
    );
    //Add delete function for admins
    if(current_user_can( 'delete_published_posts' )){
        $actions['delete'] = __('Delete');
    }
    return $actions;
 }

    function process_bulk_action() {

        $action = $this->current_action();
        if( 'activate'===$action ) {

          foreach($_GET['wp_list_event'] as $event) {
                echo($event['title']);
            }

        }
        if( 'deactivate'===$action ) {
          wp_die('Items deactivated (or they would be if we had items to deactivate)!');
        }
        //Detect when a bulk action is being triggered...
        if( 'delete'===$action ) {
          wp_die('Items deleted (or they would be if we had items to delete)!');
        }
    } 

Le code HTML rendu (non encapsulé par une balise form)

<div class="alignleft actions">
  <select name='action'>
    <option value='-1' selected='selected'>Aktion wählen</option>
    <option value='activate'>Anzeigen</option>
    <option value='deactivate'>Verstecken</option>
  </select>
  <input type="submit" name="" id="doaction" class="button action" value="Übernehmen"  />
</div>
3
Karl Adler

Vous devez envelopper votre table dans la balise form, sinon votre bouton d'action en bloc ne fonctionnera pas.

6
Eugene Manuilov

ces lignes de Exemple de tableau de liste personnalisé Plugin the a résolu le problème:

   <form id="events-filter" method="get">
    <input type="hidden" name="page" value="<?php echo $_REQUEST['page'] ?>" />
    <?php
      $wp_list_table->display();
    ?>
    </form>
6
Karl Adler