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>
Vous devez envelopper votre table dans la balise form
, sinon votre bouton d'action en bloc ne fonctionnera pas.
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>