WordPress.org

Make WordPress Core

Ticket #14960: patch14960_v2.diff

File patch14960_v2.diff, 4.3 KB (added by edwardw, 3 years ago)

[PATCH] Add features to bulk show/hide links

  • wp-admin/includes/class-wp-links-list-table.php

     
    4444 
    4545        function get_bulk_actions() { 
    4646                $actions = array(); 
    47                 $actions['delete'] = __( 'Delete' ); 
     47                 
     48                $actions['show'] = _x( 'Show', 'link' ); 
     49                $actions['hide'] = _x( 'Hide', 'link' ); 
     50                $actions['delete'] = _x( 'Delete', 'link' ); 
    4851 
    4952                return $actions; 
    5053        } 
     
    137140 
    138141                                                $actions = array(); 
    139142                                                $actions['edit'] = '<a href="' . $edit_link . '">' . __( 'Edit' ) . '</a>'; 
    140                                                 $actions['delete'] = "<a class='submitdelete' href='" . wp_nonce_url( "link.php?action=delete&amp;link_id=$link->link_id", 'delete-bookmark_' . $link->link_id ) . "' onclick=\"if ( confirm( '" . esc_js( sprintf( __( "You are about to delete this link '%s'\n  'Cancel' to stop, 'OK' to delete." ), $link->link_name ) ) . "' ) ) { return true;}return false;\">" . __( 'Delete' ) . "</a>"; 
     143                                                if($link->link_visible == 'N') { 
     144                                                        $actions['show'] = '<a href="' . esc_url(wp_nonce_url( admin_url( 'link.php?action=show&link_id=' . $link->link_id ), 'show-bookmark_' . $link->link_id )) . '">' . __( 'Show' ) . '</a>'; 
     145                                                } else if($link->link_visible == 'Y') { 
     146                                                        $actions['hide'] = '<a href="' . esc_url(wp_nonce_url( admin_url( 'link.php?action=hide&amp;link_id=' . $link->link_id), 'hide-bookmark_' . $link->link_id )) . '">' . __( 'Hide' ) . '</a>'; 
     147                                                } 
     148                                                $actions['delete'] = "<a class='submitdelete' href='" . esc_url(wp_nonce_url(admin_url( "link.php?action=delete&link_id=$link->link_id"), 'delete-bookmark_' . $link->link_id )) . "' onclick=\"if ( confirm( '" . esc_js( sprintf( __( "You are about to delete this link '%s'\n  'Cancel' to stop, 'OK' to delete." ), $link->link_name ) ) . "' ) ) { return true;}return false;\">" . __( 'Delete' ) . "</a>"; 
    141149                                                echo $this->row_actions( $actions ); 
    142150 
    143151                                                echo '</td>'; 
  • wp-admin/link.php

     
    8585                exit; 
    8686                break; 
    8787 
     88        case 'show' : 
     89                $link_id = (int) $_GET['link_id']; 
     90                check_admin_referer('show-bookmark_' . $link_id); 
     91                 
     92                $link_data = (array)get_link_to_edit($link_id); 
     93                $link_data['link_visible'] = 'Y'; 
     94                wp_update_link($link_data); 
     95                 
     96                wp_redirect($this_file); 
     97                die(); 
     98                break; 
     99                 
     100        case 'hide' : 
     101                $link_id = (int) $_GET['link_id']; 
     102                check_admin_referer('hide-bookmark_' . $link_id); 
     103                 
     104                $link_data = (array)get_link_to_edit($link_id); 
     105                $link_data['link_visible'] = 'N'; 
     106                wp_update_link($link_data); 
     107                 
     108                wp_redirect($this_file); 
     109                die(); 
     110                break; 
     111 
    88112        case 'delete' : 
    89113                $link_id = (int) $_GET['link_id']; 
    90114                check_admin_referer('delete-bookmark_' . $link_id); 
  • wp-admin/link-manager.php

     
    1818 
    1919if ( $doaction && isset( $_REQUEST['linkcheck'] ) ) { 
    2020        check_admin_referer( 'bulk-bookmarks' ); 
    21  
    22         if ( 'delete' == $doaction ) { 
    23                 $bulklinks = (array) $_REQUEST['linkcheck']; 
    24                 foreach ( $bulklinks as $link_id ) { 
    25                         $link_id = (int) $link_id; 
    26  
    27                         wp_delete_link( $link_id ); 
     21         
     22        $bulklinks = (array) $_REQUEST['linkcheck']; 
     23        switch($doaction) { 
     24                case 'delete': 
     25                        foreach ( $bulklinks as $link_id ) { 
     26                                $link_id = (int) $link_id; 
     27         
     28                                wp_delete_link( $link_id ); 
     29                        } 
     30         
     31                        wp_redirect( add_query_arg('deleted', count( $bulklinks ), admin_url( 'link-manager.php' ) ) ); 
     32                        exit; 
     33                break; 
     34                case 'hide': 
     35                        foreach($bulklinks as $link_id) { 
     36                                $link_data = (array)get_link_to_edit($link_id); 
     37                                $link_data['link_visible'] = 'N'; 
     38                                wp_update_link($link_data); 
     39                        }        
     40                break; 
     41                case 'show': 
     42                        foreach($bulklinks as $link_id) { 
     43                                $link_data = (array)get_link_to_edit($link_id); 
     44                                $link_data['link_visible'] = 'Y'; 
     45                                wp_update_link($link_data); 
     46                        } 
     47                        break; 
    2848                } 
    29  
    30                 wp_redirect( add_query_arg('deleted', count( $bulklinks ), admin_url( 'link-manager.php' ) ) ); 
    31                 exit; 
    32         } 
    3349} elseif ( ! empty( $_GET['_wp_http_referer'] ) ) { 
    3450         wp_redirect( remove_query_arg( array( '_wp_http_referer', '_wpnonce' ), stripslashes( $_SERVER['REQUEST_URI'] ) ) ); 
    3551         exit;