it-swarm.com.de

Admin-Umleitung nach Aktualisierung zum Bildschirm "Beiträge"

Gibt es einen Haken, den ich verwenden kann, wenn ein Beitrag erstellt oder aktualisiert wird, geht er zurück zur Liste/Tabellenseite aller Beiträge. Wenn es auch möglich ist, auf einen Post-Typ zu zielen, ist das ein Riss.

Es ist eine wirklich dumme Anfrage, die ich kenne und über die ich gestritten habe, aber ich wollte sicherstellen, dass sie erreichbar, wenn auch nicht sehr benutzerfreundlich ist.

Steve

2
user180386

Verwenden Sie den redirect_post_location-Filter und admin_url() -Funktion.

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;
}

Um zu einer anderen URL umzuleiten, fügen Sie alles nach dem Teil /wp-admin/ der URL hinzu. Ich habe "edit.php" verwendet, da die beabsichtigte URL http://example.com/wordpress/wp-admin/edit.php lautete.


Der redirect_post_location-Filter ist in der Codex-Filterreferenz nicht dokumentiert. Sie finden es in der Datei \wp-admin\post.php in der Nähe von Zeile 73. Dies ist der WordPress-Code in der Trunk-Version von WordPress:

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

Wie Sie sehen, können Sie auch die $post_id-Umleitung testen, die auf dem $post_id oder den von ihm erhaltenen Informationen basiert. Um diesen zweiten Parameter des Filters zu verwenden, müssen Sie die Parameter priority und _accepted_args_ im Aufruf filter übergeben:

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

Und aktualisieren Sie die Funktionsparameter:

/**
 * 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