Activation
11 years ago
Config
11 years ago
Entities
11 years ago
Form
11 years ago
Views
11 years ago
Bootstrap.php
11 years ago
Helpers.php
11 years ago
NestedPages.php
11 years ago
Redirects.php
11 years ago
Redirects.php
60 lines
| 1 | <?php namespace NestedPages; |
| 2 | /** |
| 3 | * Page Redirects in admin |
| 4 | */ |
| 5 | class Redirects { |
| 6 | |
| 7 | |
| 8 | public function __construct() |
| 9 | { |
| 10 | add_action('load-edit.php', array($this, 'pageTrashed')); |
| 11 | add_action('load-edit.php', array($this, 'pageRestored')); |
| 12 | add_action('deleted_post', array($this, 'linkDeleted'), 10, 1); |
| 13 | } |
| 14 | |
| 15 | |
| 16 | /** |
| 17 | * Redirect back to nested pages after pages moved to trashed |
| 18 | */ |
| 19 | public function pageTrashed() |
| 20 | { |
| 21 | $screen = get_current_screen(); |
| 22 | if ( ($screen->id == 'edit-page') && (isset($_GET['trashed'])) && (intval($_GET['trashed']) >0)){ |
| 23 | $redirect = add_query_arg(array('page'=>'nestedpages', 'trashed' => true, 'ids' => $_GET['ids'] )); |
| 24 | wp_redirect($redirect); |
| 25 | exit(); |
| 26 | } |
| 27 | } |
| 28 | |
| 29 | |
| 30 | /** |
| 31 | * Redirect to nested pages after page moved out of trash |
| 32 | */ |
| 33 | public function pageRestored() |
| 34 | { |
| 35 | $screen = get_current_screen(); |
| 36 | if ( ($screen->id == 'edit-page') && (isset($_GET['untrashed'])) && (intval($_GET['untrashed']) >0)){ |
| 37 | $redirect = add_query_arg(array('page'=>'nestedpages', 'untrashed' => true, 'untrashed' => $_GET['untrashed'] )); |
| 38 | wp_redirect($redirect); |
| 39 | exit(); |
| 40 | } |
| 41 | } |
| 42 | |
| 43 | |
| 44 | /** |
| 45 | * Add link trashed param to URL after delete (for notification) |
| 46 | */ |
| 47 | public function linkDeleted($post_id) |
| 48 | { |
| 49 | $screen = get_current_screen(); |
| 50 | if ( (get_post_type($post_id) == 'np-redirect') && ($screen->id == 'np-redirect') ){ |
| 51 | $redirect = add_query_arg(array('page'=>'nestedpages', 'linkdeleted' => true, '_wpnonce' => false, 'post' => false, 'action'=>false)); |
| 52 | wp_redirect($redirect); |
| 53 | exit(); |
| 54 | } |
| 55 | } |
| 56 | |
| 57 | |
| 58 | |
| 59 | |
| 60 | } |