管理员帖子更新重定向到帖子屏幕

时间:2013-11-22 作者:user180386

有没有一个钩子我可以使用,当一篇文章被创建或更新时,它会返回到所有文章的列表/表格页面。如果也可以针对一个可能会开裂的帖子类型。

我知道这是一个非常愚蠢的请求,并对此争论不休,但我想确保它是可以实现的,如果不是非常方便用户的话。

史蒂夫

1 个回复
SO网友:Charles Clarkson

使用redirect_post_location 过滤器和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;
}
要重定向到其他url,请在/wp-admin/ url的一部分。我用过"edit.php" 因为预期的url是:http://example.com/wordpress/wp-admin/edit.php.


Theredirect_post_location 过滤器未记录在Codex Filter Reference. 你可以在\\wp-admin\\post.php 第73行附近的文件。这是WordPress主干版本中的WordPress代码:

wp_redirect( apply_filters( \'redirect_post_location\', $location, $post_id ) );
如您所见,您还可以测试$post_id 重定向基于$post_id 或从中获得的任何信息。要使用过滤器的第二个参数,需要在filter call:

add_filter( \'redirect_post_location\', \'wpse_124132_redirect_post_location\', 10, 2 );
并更新功能参数:

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

结束