PluginProbe
Bogo / 2.4
Bogo v2.4
3.9.3 trunk 1.0 1.1 2.0 2.0.1 2.1 2.1.1 2.1.2 2.1.3 2.2 2.3 2.4 2.4.1 2.4.2 2.4.3 2.5 2.6 2.6.1 2.7 2.8 2.8.1 2.9 3.0 3.0.1 All 52 releases
← All changes | includes/query.php +20 -15 2.1.32.4 View file →
@@ -145,31 +145,36 @@
145 145
146 146 return $posts;
147 147 }
148 148
149 -add_filter( 'option_page_on_front', 'bogo_option_page_on_front' );
149 +add_filter( 'option_page_on_front', 'bogo_get_local_post' );
150 +add_filter( 'option_page_for_posts', 'bogo_get_local_post' );
150 151
151 -function bogo_option_page_on_front( $page_id ) {
152 +function bogo_get_local_post( $post_id ) {
152 153 global $wpdb;
153 154
154 - if ( ! bogo_is_localizable_post_type( 'page' ) )
155 - return $page_id;
155 + if ( is_admin() || empty( $post_id ) ) {
156 + return $post_id;
157 + }
156 158
157 - if ( empty( $page_id ) )
158 - return $page_id;
159 + $post_type = get_post_type( $post_id );
159 160
160 - if ( is_admin() )
161 - return $page_id;
161 + if ( ! post_type_exists( $post_type )
162 + || ! bogo_is_localizable_post_type( $post_type ) ) {
163 + return $post_id;
164 + }
162 165
163 166 $locale = get_locale();
164 167
165 - if ( bogo_get_post_locale( $page_id ) == $locale )
166 - return $page_id;
168 + if ( bogo_get_post_locale( $post_id ) == $locale ) {
169 + return $post_id;
170 + }
167 171
168 - $original = get_post_meta( $page_id, '_original_post', true );
172 + $original = get_post_meta( $post_id, '_original_post', true );
169 173
170 - if ( empty( $original ) )
171 - $original = $page_id;
174 + if ( empty( $original ) ) {
175 + $original = $post_id;
176 + }
172 177
173 178 $q = "SELECT ID FROM $wpdb->posts AS posts";
174 179 $q .= " LEFT JOIN $wpdb->postmeta AS pm1";
175 180 $q .= " ON posts.ID = pm1.post_id AND pm1.meta_key = '_original_post'";
@@ -175,9 +180,9 @@
175 180 $q .= " ON posts.ID = pm1.post_id AND pm1.meta_key = '_original_post'";
176 181 $q .= " LEFT JOIN $wpdb->postmeta AS pm2";
177 182 $q .= " ON posts.ID = pm2.post_id AND pm2.meta_key = '_locale'";
178 183 $q .= " WHERE 1=1";
179 - $q .= " AND post_type = 'page'";
184 + $q .= $wpdb->prepare( " AND post_type = %s", $post_type );
180 185 $q .= $wpdb->prepare( " AND (ID = %d OR pm1.meta_value = %d)",
181 186 $original, $original );
182 187 $q .= " AND (1=0";
183 188 $q .= $wpdb->prepare( " OR pm2.meta_value LIKE %s", $locale );
@@ -188,8 +193,8 @@
188 193
189 194 if ( $translation )
190 195 return $translation;
191 196
192 - return $page_id;
197 + return $post_id;
193 198 }
194 199
195 200 ?>