redirect_post_location
Фильтрует конечный адрес УРЛ, на который WP перенаправляет пользователя при сохранении, публикации или обновлении записи (поста).
Пример: при создании поста УРЛ имеет вид: /wp-admin/post-new.php
. После того, как мы нажмем кнопку "Сохранить" или "Опубликовать" УРЛ станет: wp-admin/post.php?post=3061&action=edit&message=10
. Именно этот новый УРЛ мы можем изменить, используя фильтр redirect_post_location
.
Использование
function filter_function_name_11( $location, $post_id ) { // Фильтр... return $location; } add_filter( 'redirect_post_location', 'filter_function_name_11', 10, 2 );
- $location(строка)
- УРЛ на который будет перенаправлен пользователь.
- $post_id(число)
- ID поста, который обрабатывается в текущий момент.
Примеры
#1 Перенаправление на список записей при создании записи
Предположим, при создании или обновлении записи, нам нужно, чтобы пользователя перенаправило на страницу админ-панели со списком всех записей, а не на туже страницу редактирования записи. Для этого воспользуемся фильтром redirect_post_location
и функцией admin_url():
/** * Перенаправить на edit.php при сохранении или публикации поста. */ function redirect_to_list_after_publish_post( $location ) { if ( isset( $_POST['save'] ) || isset( $_POST['publish'] ) ) return admin_url( "edit.php" ); // ссылка будет такой: http://example.com/wp-admin/edit.php return $location; } add_filter( 'redirect_post_location', 'redirect_to_list_after_publish_post' );
Список изменений
С версии 2.9.0 | Введена. |
Где вызывается хук
redirect_post_location
wp-admin/includes/post.php 2218
wp_redirect( apply_filters( 'redirect_post_location', $location, $post_id ) );