Make WordPress Core


Ignore:
Timestamp:
09/04/2013 07:40:17 PM (11 years ago)
Author:
wonderboymusic
Message:

Introduce description__like arg to get_terms(). Make description__like and name__like perform LIKEs with a wildcard on both sides of passed string. Previously, strings had to match the beginning of the name, so searching for burrito in This is a burrito would fail. Adds unit tests.

Props aaroncampbell for the original patch, 5 years ago.
Fixes #8214.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/taxonomy.php

    r25169 r25241  
    11671167 * case-insensitive. Default is an empty string.
    11681168 *
    1169  * name__like - Returned terms' names will begin with the value of 'name__like',
     1169 * name__like - Returned terms' names will contain the value of 'name__like',
    11701170 * case-insensitive. Default is empty string.
     1171 *
     1172 * description__like - Returned terms' descriptions will contain the value of
     1173 *  'description__like', case-insensitive. Default is empty string.
    11711174 *
    11721175 * The argument 'pad_counts', if set to true will include the quantity of a term's
     
    12231226        'hide_empty' => true, 'exclude' => array(), 'exclude_tree' => array(), 'include' => array(),
    12241227        'number' => '', 'fields' => 'all', 'slug' => '', 'parent' => '',
    1225         'hierarchical' => true, 'child_of' => 0, 'get' => '', 'name__like' => '',
     1228        'hierarchical' => true, 'child_of' => 0, 'get' => '', 'name__like' => '', 'description__like' => '',
    12261229        'pad_counts' => false, 'offset' => '', 'search' => '', 'cache_domain' => 'core' );
    12271230    $args = wp_parse_args( $args, $defaults );
     
    13461349    if ( !empty($name__like) ) {
    13471350        $name__like = like_escape( $name__like );
    1348         $where .= $wpdb->prepare( " AND t.name LIKE %s", $name__like . '%' );
     1351        $where .= $wpdb->prepare( " AND t.name LIKE %s", '%' . $name__like . '%' );
     1352    }
     1353
     1354    if ( ! empty( $description__like ) ) {
     1355        $description__like = like_escape( $description__like );
     1356        $where .= $wpdb->prepare( " AND tt.description LIKE %s", '%' . $description__like . '%' );
    13491357    }
    13501358
Note: See TracChangeset for help on using the changeset viewer.