Ticket #15970: 15970.3.diff

File 15970.3.diff, 4.8 KB (added by SergeyBiryukov, 19 months ago)

With @access private

Line 
1Index: wp-admin/edit-tags.php
2===================================================================
3--- wp-admin/edit-tags.php      (revision 19091)
4+++ wp-admin/edit-tags.php      (working copy)
5@@ -42,7 +42,7 @@
6        $submenu_file = "edit-tags.php?taxonomy=$taxonomy";
7 }
8 
9-add_screen_option( 'per_page', array('label' => $title, 'default' => 20, 'option' => 'edit_' . $tax->name . '_per_page') );
10+add_screen_option( 'per_page', array('label' => $title, 'default' => 20, 'option' => _convert_key_to_option( 'edit_' . $tax->name . '_per_page' ) ) );
11 
12 switch ( $wp_list_table->current_action() ) {
13 
14Index: wp-admin/includes/class-wp-plugins-list-table.php
15===================================================================
16--- wp-admin/includes/class-wp-plugins-list-table.php   (revision 19091)
17+++ wp-admin/includes/class-wp-plugins-list-table.php   (working copy)
18@@ -130,7 +130,7 @@
19                        uasort( $this->items, array( &$this, '_order_callback' ) );
20                }
21 
22-               $plugins_per_page = $this->get_items_per_page( str_replace( '-', '_', $screen->id . '_per_page' ), 999 );
23+               $plugins_per_page = $this->get_items_per_page( _convert_key_to_option( $screen->id . '_per_page' ), 999 );
24 
25                $start = ( $page - 1 ) * $plugins_per_page;
26 
27Index: wp-admin/includes/class-wp-posts-list-table.php
28===================================================================
29--- wp-admin/includes/class-wp-posts-list-table.php     (revision 19091)
30+++ wp-admin/includes/class-wp-posts-list-table.php     (working copy)
31@@ -94,7 +94,7 @@
32 
33                $total_items = $this->hierarchical_display ? $wp_query->post_count : $wp_query->found_posts;
34 
35-               $per_page = $this->get_items_per_page( 'edit_' . $post_type . '_per_page' );
36+               $per_page = $this->get_items_per_page( _convert_key_to_option( 'edit_' . $post_type . '_per_page' ) );
37                $per_page = apply_filters( 'edit_posts_per_page', $per_page, $post_type );
38 
39                if ( $this->hierarchical_display )
40Index: wp-admin/includes/class-wp-terms-list-table.php
41===================================================================
42--- wp-admin/includes/class-wp-terms-list-table.php     (revision 19091)
43+++ wp-admin/includes/class-wp-terms-list-table.php     (working copy)
44@@ -42,7 +42,7 @@
45        function prepare_items() {
46                global $taxonomy;
47 
48-               $tags_per_page = $this->get_items_per_page( 'edit_' .  $taxonomy . '_per_page' );
49+               $tags_per_page = $this->get_items_per_page( _convert_key_to_option( 'edit_' .  $taxonomy . '_per_page' ) );
50 
51                if ( 'post_tag' == $taxonomy ) {
52                        $tags_per_page = apply_filters( 'edit_tags_per_page', $tags_per_page );
53Index: wp-admin/includes/misc.php
54===================================================================
55--- wp-admin/includes/misc.php  (revision 19091)
56+++ wp-admin/includes/misc.php  (working copy)
57@@ -313,6 +313,19 @@
58 }
59 
60 /**
61+ * Convert a key to an appropriate option name.
62+ *
63+ * @since 3.3.0
64+ * @access private
65+ *
66+ * @param string $key A key to convert, e.g. "edit_{$post_type}_per_page".
67+ * @return string Option name.
68+ */
69+function _convert_key_to_option( $key ) {
70+       return str_replace( '-', '_', $key );
71+}
72+
73+/**
74  * Saves option for number of rows when listing posts, pages, comments, etc.
75  *
76  * @since 2.8
77@@ -330,14 +342,14 @@
78                if ( !preg_match( '/^[a-z_-]+$/', $option ) )
79                        return;
80 
81-               $option = str_replace('-', '_', $option);
82+               $option = _convert_key_to_option( $option );
83 
84                $map_option = $option;
85                $type = str_replace('edit_', '', $map_option);
86                $type = str_replace('_per_page', '', $type);
87-               if ( in_array($type, get_post_types()) )
88+               if ( in_array( $type, array_map( '_convert_key_to_option', get_post_types() ) ) )
89                        $map_option = 'edit_per_page';
90-               if ( in_array( $type, get_taxonomies()) )
91+               if ( in_array( $type, array_map( '_convert_key_to_option', get_taxonomies() ) ) )
92                        $map_option = 'edit_tags_per_page';
93 
94 
95Index: wp-admin/includes/post.php
96===================================================================
97--- wp-admin/includes/post.php  (revision 19091)
98+++ wp-admin/includes/post.php  (working copy)
99@@ -871,7 +871,7 @@
100        elseif ( isset($q['post_status']) && 'pending' == $q['post_status'] )
101                $order = 'ASC';
102 
103-       $per_page = 'edit_' . $post_type . '_per_page';
104+       $per_page = _convert_key_to_option( 'edit_' . $post_type . '_per_page' );
105        $posts_per_page = (int) get_user_option( $per_page );
106        if ( empty( $posts_per_page ) || $posts_per_page < 1 )
107                $posts_per_page = 20;
108Index: wp-admin/includes/screen.php
109===================================================================
110--- wp-admin/includes/screen.php        (revision 19091)
111+++ wp-admin/includes/screen.php        (working copy)
112@@ -881,7 +881,7 @@
113 
114                $option = $this->get_option( 'per_page', 'option' );
115                if ( ! $option )
116-                       $option = str_replace( '-', '_', "{$this->id}_per_page" );
117+                       $option = _convert_key_to_option( "{$this->id}_per_page" );
118 
119                $per_page = (int) get_user_option( $option );
120                if ( empty( $per_page ) || $per_page < 1 ) {