web-dev-qa-db-fra.com

Supprimer le lien sur single-custom.php avec redirection

Je dois fournir un lien de suppression à mes utilisateurs sur la page unique d'un type de message personnalisé. Mais lorsque l’entrée est supprimée, l’utilisateur se termine par une erreur wordpress liée à cette page (car nous sommes toujours sur le site d’entrée + /?deleted=1). Comment puis-je rediriger l'utilisateur vers une autre page de mon site?

Voici comment je poste mon lien de suppression:

if ( !current_user_can( 'delete_bkroadkill', $post->ID ) )
            return;

        $onclick =  "onclick=\"return confirm('Rly delete?');\"";
        $link = "<a " . $onclick. " href='" . wp_nonce_url( get_bloginfo('url') . "/wordpress/wp-admin/post.php?action=delete&amp;post=" . $post->ID, 'delete-post_' . $post->ID) . "'>" . 'Löschen' . "</a>";
        echo $before . $link . $after;

et j'appelle simplement cette fonction dans mon single-bkroadkill.php

  <?php wp_delete_post_link(); ?>

J'ai déjà essayé en utilisant ce crochet:

add_action('trashed_post','my_trashed_post_handler',10,1);
function my_trashed_post_handler($post_id) {
   if (!is_admin()) {
    wp_redirect('http://www.citizen-science.at/projekte/roadkill/ubersicht');
    exit;
   }
}

Mais cela n'a eu aucun effet. Cela ne fonctionne-t-il que pour les postes standard? Je n'ai trouvé aucune documentation sur les crochets, à l'exception de http://codex.wordpress.org/Plugin_API#Current_Hooks_For_Actions .

Quoi qu'il en soit, quelle serait la bonne façon de faire cela?

1
4ndro1d

Plutôt que de rester sur la page, l’utilisateur accède au lien puis est renvoyé après la suppression du message. D'après votre description et votre code rapide, il s'agit probablement de la ligne qui renvoie l'utilisateur:

wp_redirect( add_query_arg('deleted', 1, $sendback) );

Puisque la destination est filtrée à l'intérieur wp_redirect()

$location = apply_filters( 'wp_redirect', $location, $status );

et vous avez ce marqueur deleted prêt à l'emploi, il devrait être facile de rediriger l'utilisateur ailleurs, probablement avec des vérifications techniques pour qu'il n'interfère pas avec le fonctionnement normal de l'administrateur.

2
Rarst