WordPress.org

Make WordPress Core

Changeset 15626


Ignore:
Timestamp:
09/17/2010 10:27:22 PM (8 years ago)
Author:
scribu
Message:

Don't require categoryin, tagin etc. to be arrays necessarily. Fixes #14892

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/query.php

    r15625 r15626  
    12871287                $this->is_category = false;
    12881288            } else {
    1289                 if ( strpos($qv['cat'], '-') !== false ) {
    1290                     $this->is_category = false;
    1291                 } else {
    1292                     $this->is_category = true;
    1293                 }
    1294             }
    1295 
    1296             if ( '' != $qv['category_name'] ) {
     1289                $this->is_category = strpos($qv['cat'], '-') !== false;
     1290            }
     1291
     1292            if ( !empty($qv['category_name']) ) {
    12971293                $this->is_category = true;
    12981294            }
    12991295
    1300             if ( !is_array($qv['category__in']) || empty($qv['category__in']) ) {
     1296            if ( empty($qv['category__in']) ) {
    13011297                $qv['category__in'] = array();
    13021298            } else {
    1303                 $qv['category__in'] = array_map('absint', $qv['category__in']);
     1299                $qv['category__in'] = array_map('absint', (array) $qv['category__in']);
    13041300                $this->is_category = true;
    13051301            }
    13061302
    1307             if ( !is_array($qv['category__not_in']) || empty($qv['category__not_in']) ) {
     1303            if ( empty($qv['category__not_in']) ) {
    13081304                $qv['category__not_in'] = array();
    13091305            } else {
    1310                 $qv['category__not_in'] = array_map('absint', $qv['category__not_in']);
    1311             }
    1312 
    1313             if ( !is_array($qv['category__and']) || empty($qv['category__and']) ) {
     1306                $qv['category__not_in'] = array_map('absint', (array) $qv['category__not_in']);
     1307            }
     1308
     1309            if ( empty($qv['category__and']) ) {
    13141310                $qv['category__and'] = array();
    13151311            } else {
    1316                 $qv['category__and'] = array_map('absint', $qv['category__and']);
     1312                $qv['category__and'] = array_map('absint', (array) $qv['category__and']);
    13171313                $this->is_category = true;
    13181314            }
     
    13221318
    13231319            $qv['tag_id'] = absint($qv['tag_id']);
    1324             if (  !empty($qv['tag_id']) )
     1320            if ( !empty($qv['tag_id']) )
    13251321                $this->is_tag = true;
    13261322
    1327             if ( !is_array($qv['tag__in']) || empty($qv['tag__in']) ) {
     1323            if ( empty($qv['tag__in']) ) {
    13281324                $qv['tag__in'] = array();
    13291325            } else {
    1330                 $qv['tag__in'] = array_map('absint', $qv['tag__in']);
     1326                $qv['tag__in'] = array_map('absint', (array) $qv['tag__in']);
    13311327                $this->is_tag = true;
    13321328            }
    13331329
    1334             if ( !is_array($qv['tag__not_in']) || empty($qv['tag__not_in']) ) {
     1330            if ( empty($qv['tag__not_in']) ) {
    13351331                $qv['tag__not_in'] = array();
    13361332            } else {
    1337                 $qv['tag__not_in'] = array_map('absint', $qv['tag__not_in']);
     1333                $qv['tag__not_in'] = array_map('absint', (array) $qv['tag__not_in']);
    13381334            }
    13391335
     
    13411337                $qv['tag__and'] = array();
    13421338            } else {
    1343                 $qv['tag__and'] = array_map('absint', $qv['tag__and']);
    1344                 $this->is_category = true;
    1345             }
    1346 
    1347             if ( !is_array($qv['tag_slug__in']) || empty($qv['tag_slug__in']) ) {
     1339                $qv['tag__and'] = array_map('absint', (array) $qv['tag__and']);
     1340                $this->is_tag = true;
     1341            }
     1342
     1343            if ( empty($qv['tag_slug__in']) ) {
    13481344                $qv['tag_slug__in'] = array();
    13491345            } else {
    1350                 $qv['tag_slug__in'] = array_map('sanitize_title', $qv['tag_slug__in']);
     1346                $qv['tag_slug__in'] = array_map('sanitize_title', (array) $qv['tag_slug__in']);
    13511347                $this->is_tag = true;
    13521348            }
    13531349
    1354             if ( !is_array($qv['tag_slug__and']) || empty($qv['tag_slug__and']) ) {
     1350            if ( empty($qv['tag_slug__and']) ) {
    13551351                $qv['tag_slug__and'] = array();
    13561352            } else {
    1357                 $qv['tag_slug__and'] = array_map('sanitize_title', $qv['tag_slug__and']);
     1353                $qv['tag_slug__and'] = array_map('sanitize_title', (array) $qv['tag_slug__and']);
    13581354                $this->is_tag = true;
    13591355            }
Note: See TracChangeset for help on using the changeset viewer.