web-dev-qa-db-fra.com

Écran Redirection post-administration vers les publications

Y a-t-il un crochet que je peux utiliser pour créer ou mettre à jour un article qui revient à la page liste/tableau de tous les articles. S'il est également possible de cibler également un type de publication, ce serait une fissure.

C’est une demande vraiment stupide que je connais et qui a bien discuté de la question, mais je voulais faire en sorte que cela soit réalisable sinon très convivial.

Steve

2
user180386

Utilisez le filtre redirect_post_location et la fonction admin_url() .

add_filter( 'redirect_post_location', 'wpse_124132_redirect_post_location' );
/**
 * Redirect to the edit.php on post save or publish.
 */
function wpse_124132_redirect_post_location( $location ) {

    if ( isset( $_POST['save'] ) || isset( $_POST['publish'] ) )
        return admin_url( "edit.php" );

    return $location;
}

Pour rediriger vers une autre URL, ajoutez tout ce qui suit la partie /wp-admin/ de l'URL. J'ai utilisé "edit.php" parce que l'URL prévue était: http://example.com/wordpress/wp-admin/edit.php.


Le filtre redirect_post_location n'est pas documenté dans la référence de filtre Codex . Vous pouvez le trouver dans le fichier \wp-admin\post.php près de la ligne 73. Voici le code WordPress de la version de trunk de WordPress:

wp_redirect( apply_filters( 'redirect_post_location', $location, $post_id ) );

Comme vous pouvez le constater, vous pouvez également tester la redirection $post_id en fonction du $post_id ou de toute information obtenue à partir de celle-ci. Pour utiliser ce second paramètre du filtre, vous devez transmettre les paramètres priority et _accepted_args_ dans le appel du filtre :

add_filter( 'redirect_post_location', 'wpse_124132_redirect_post_location', 10, 2 );

Et mettez à jour les paramètres de la fonction:

/**
 * Redirect to the edit.php on post save or publish.
 */
function wpse_124132_redirect_post_location( $location, $post_id ) {

    if ( isset( $_POST['save'] ) || isset( $_POST['publish'] ) ) {
        // Maybe test $post_id to find some criteria.
        return admin_url( "edit.php" );
    }

    return $location;
}
6
Charles Clarkson