WordPress.org

Make WordPress Core

Ticket #14960: patch14960.diff

File patch14960.diff, 3.4 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                 
     48                $actions['show'] = __('Show'); 
     49                $actions['hide'] = __('Hide'); 
    4750                $actions['delete'] = __( 'Delete' ); 
    4851 
    4952                return $actions; 
     
    137140 
    138141                                                $actions = array(); 
    139142                                                $actions['edit'] = '<a href="' . $edit_link . '">' . __( 'Edit' ) . '</a>'; 
     143                                                $actions['show'] = '<a href="' . wp_nonce_url( "link.php?action=show&amp;link_id=" . $link->link_id, "show_" . $link->link_id ) . '">' . __("Show") . '</a>'; 
     144                                                $actions['hide'] = '<a href="' . wp_nonce_url( "link.php?action=hide&amp;link_id=" . $link->link_id, "hide_" . $link->link_id ) . '">' . __("Hide") . '</a>'; 
    140145                                                $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>"; 
    141146                                                echo $this->row_actions( $actions ); 
    142147 
  • wp-admin/link.php

     
    8585                exit; 
    8686                break; 
    8787 
     88        case 'show' : 
     89                $link_id = (int) $_GET['link_id']; 
     90                check_admin_referer('show_' . $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_' . $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']; 
     21         
     22        $bulklinks = (array) $_REQUEST['linkcheck']; 
     23        if ( $doaction == 'delete' ) { 
    2424                foreach ( $bulklinks as $link_id ) { 
    2525                        $link_id = (int) $link_id; 
    2626 
     
    2929 
    3030                wp_redirect( add_query_arg('deleted', count( $bulklinks ), admin_url( 'link-manager.php' ) ) ); 
    3131                exit; 
     32        } elseif ($doaction == 'hide') { 
     33                foreach($bulklinks as $link_id) { 
     34                        $link_data = (array)get_link_to_edit($link_id); 
     35                        $link_data['link_visible'] = 'N'; 
     36                        wp_update_link($link_data); 
     37                } 
     38        } elseif ($doaction == 'show') { 
     39                foreach($bulklinks as $link_id) { 
     40                        $link_data = (array)get_link_to_edit($link_id); 
     41                        $link_data['link_visible'] = 'Y'; 
     42                        wp_update_link($link_data); 
     43                } 
    3244        } 
    3345} elseif ( ! empty( $_GET['_wp_http_referer'] ) ) { 
    3446         wp_redirect( remove_query_arg( array( '_wp_http_referer', '_wpnonce' ), stripslashes( $_SERVER['REQUEST_URI'] ) ) );