WordPress.org

Make WordPress Core

Ticket #15242: 15242.3.diff

File 15242.3.diff, 13.5 KB (added by wpmuguru, 8 years ago)

lines 1-900 of 15242.diff

  • wp-includes/taxonomy.php

     
    2121                'query_var' => 'category_name',
    2222                'rewrite' => array(
    2323                                        'hierarchical' => true,
    24                                         'slug' => get_option('category_base') ? get_option('category_base') : 'category',
    25                                         'with_front' => false),
     24                                        'slug' => get_option( 'category_base' ) ? get_option( 'category_base' ) : 'category',
     25                                        'with_front' => false
     26                ),
    2627                'public' => true,
    2728                'show_ui' => true,
    2829                '_builtin' => true,
     
    3334                'update_count_callback' => '_update_post_term_count',
    3435                'query_var' => 'tag',
    3536                'rewrite' => array(
    36                                         'slug' => get_option('tag_base') ? get_option('tag_base') : 'tag' ,
    37                                         'with_front' => false),
     37                                        'slug' => get_option( 'tag_base' ) ? get_option( 'tag_base' ) : 'tag',
     38                                        'with_front' => false
     39                ),
    3840                'public' => true,
    3941                'show_ui' => true,
    4042                '_builtin' => true,
     
    5254                'show_ui' => false,
    5355                '_builtin' => true,
    5456                'show_in_nav_menus' => false,
    55         ) ) ;
     57        ) );
    5658
    5759        register_taxonomy( 'link_category', 'link', array(
    5860                'hierarchical' => false,
     
    7577                'public' => false,
    7678                'show_ui' => false,
    7779                '_builtin' => true,
    78         ) ) ;
     80        ) );
    7981
    80         register_taxonomy( 'post_format', array('post', 'page', 'attachment'), array(
     82        register_taxonomy( 'post_format', array( 'post', 'page', 'attachment' ), array(
    8183                'public' => false,
    8284                'hierarchical' => false,
    8385                'labels' => array(
     
    8991                'show_ui' => false,
    9092                '_builtin' => true,
    9193                'show_in_nav_menus' => false,
    92         ) ) ;
     94        ) );
    9395}
    9496add_action( 'init', 'create_initial_taxonomies', 0 ); // highest priority
    9597
     
    111113function get_taxonomies( $args = array(), $output = 'names', $operator = 'and' ) {
    112114        global $wp_taxonomies;
    113115
    114         $field = ('names' == $output) ? 'name' : false;
     116        $field = ( 'names' == $output ) ? 'name' : false;
    115117
    116         return wp_filter_object_list($wp_taxonomies, $args, $operator, $field);
     118        return wp_filter_object_list( $wp_taxonomies, $args, $operator, $field );
    117119}
    118120
    119121
     
    136138 * @param string $output The type of output to return, either taxonomy 'names' or 'objects'. 'names' is the default.
    137139 * @return array The names of all taxonomy of $object_type.
    138140 */
    139 function get_object_taxonomies($object, $output = 'names') {
     141function get_object_taxonomies( $object, $output = 'names' ) {
    140142        global $wp_taxonomies;
    141143
    142         if ( is_object($object) ) {
     144        if ( is_object( $object ) ) {
    143145                if ( $object->post_type == 'attachment' )
    144                         return get_attachment_taxonomies($object);
     146                        return get_attachment_taxonomies( $object );
    145147                $object = $object->post_type;
    146148        }
    147149
     
    149151
    150152        $taxonomies = array();
    151153        foreach ( (array) $wp_taxonomies as $tax_name => $tax_obj ) {
    152                 if ( array_intersect($object, (array) $tax_obj->object_type) ) {
     154                if ( array_intersect( $object, (array) $tax_obj->object_type ) ) {
    153155                        if ( 'names' == $output )
    154156                                $taxonomies[] = $tax_name;
    155157                        else
     
    223225 * @param string $taxonomy Name of taxonomy object
    224226 * @return bool Whether the taxonomy is hierarchical
    225227 */
    226 function is_taxonomy_hierarchical($taxonomy) {
    227         if ( ! taxonomy_exists($taxonomy) )
     228function is_taxonomy_hierarchical( $taxonomy ) {
     229        if ( ! taxonomy_exists( $taxonomy ) )
    228230                return false;
    229231
    230         $taxonomy = get_taxonomy($taxonomy);
     232        $taxonomy = get_taxonomy( $taxonomy );
    231233        return $taxonomy->hierarchical;
    232234}
    233235
     
    286288function register_taxonomy( $taxonomy, $object_type, $args = array() ) {
    287289        global $wp_taxonomies, $wp_rewrite, $wp;
    288290
    289         if ( ! is_array($wp_taxonomies) )
     291        if ( ! is_array( $wp_taxonomies ) )
    290292                $wp_taxonomies = array();
    291293
    292294        $defaults = array(      'hierarchical' => false,
     
    301303                                                'capabilities' => array(),
    302304                                                'show_in_nav_menus' => null,
    303305                                        );
    304         $args = wp_parse_args($args, $defaults);
     306        $args = wp_parse_args( $args, $defaults );
    305307
    306         if ( false !== $args['query_var'] && !empty($wp) ) {
     308        if ( false !== $args['query_var'] && !empty( $wp ) ) {
    307309                if ( true === $args['query_var'] )
    308310                        $args['query_var'] = $taxonomy;
    309                 $args['query_var'] = sanitize_title_with_dashes($args['query_var']);
    310                 $wp->add_query_var($args['query_var']);
     311                $args['query_var'] = sanitize_title_with_dashes( $args['query_var'] );
     312                $wp->add_query_var( $args['query_var'] );
    311313        }
    312314
    313         if ( false !== $args['rewrite'] && '' != get_option('permalink_structure') && !empty($wp_rewrite) ) {
    314                 $args['rewrite'] = wp_parse_args($args['rewrite'], array(
    315                         'slug' => sanitize_title_with_dashes($taxonomy),
     315        if ( false !== $args['rewrite'] && '' != get_option( 'permalink_structure' ) && !empty( $wp_rewrite ) ) {
     316                $args['rewrite'] = wp_parse_args( $args['rewrite'], array(
     317                        'slug' => sanitize_title_with_dashes( $taxonomy ),
    316318                        'with_front' => true,
    317319                        'hierarchical' => false
    318                 ));
     320                ) );
    319321
    320322                if ( $args['hierarchical'] && $args['rewrite']['hierarchical'] )
    321323                        $tag = '(.+?)';
    322324                else
    323325                        $tag = '([^/]+)';
    324326
    325                 $wp_rewrite->add_rewrite_tag("%$taxonomy%", $tag, $args['query_var'] ? "{$args['query_var']}=" : "taxonomy=$taxonomy&term=");
    326                 $wp_rewrite->add_permastruct($taxonomy, "{$args['rewrite']['slug']}/%$taxonomy%", $args['rewrite']['with_front']);
     327                $wp_rewrite->add_rewrite_tag( "%$taxonomy%", $tag, $args['query_var'] ? "{$args['query_var']}=" : "taxonomy=$taxonomy&term=" );
     328                $wp_rewrite->add_permastruct( $taxonomy, "{$args['rewrite']['slug']}/%$taxonomy%", $args['rewrite']['with_front'] );
    327329        }
    328330
    329         if ( is_null($args['show_ui']) )
     331        if ( is_null( $args['show_ui'] ) )
    330332                $args['show_ui'] = $args['public'];
    331333
    332334        // Whether to show this type in nav-menus.php. Defaults to the setting for public.
    333335        if ( null === $args['show_in_nav_menus'] )
    334336                $args['show_in_nav_menus'] = $args['public'];
    335337
    336         if ( is_null($args['show_tagcloud']) )
     338        if ( is_null( $args['show_tagcloud'] ) )
    337339                $args['show_tagcloud'] = $args['show_ui'];
    338340
    339341        $default_caps = array(
     
    354356        $wp_taxonomies[$taxonomy] = (object) $args;
    355357
    356358        // register callback handling for metabox
    357         add_filter('wp_ajax_add-' . $taxonomy, '_wp_ajax_add_hierarchical_term');
     359        add_filter( 'wp_ajax_add-' . $taxonomy, '_wp_ajax_add_hierarchical_term' );
    358360}
    359361
    360362/**
     
    419421 * @param array|string $object_type Name of the object type
    420422 * @return bool True if successful, false if not
    421423 */
    422 function register_taxonomy_for_object_type( $taxonomy, $object_type) {
     424function register_taxonomy_for_object_type( $taxonomy, $object_type ) {
    423425        global $wp_taxonomies;
    424426
    425         if ( !isset($wp_taxonomies[$taxonomy]) )
     427        if ( !isset( $wp_taxonomies[$taxonomy] ) )
    426428                return false;
    427429
    428         if ( ! get_post_type_object($object_type) )
     430        if ( ! get_post_type_object( $object_type ) )
    429431                return false;
    430432
    431433        $wp_taxonomies[$taxonomy]->object_type[] = $object_type;
     
    536538                        foreach ( $terms as $i => $term ) {
    537539                                $terms[$i] = sanitize_title_for_query( $term );
    538540                        }
    539                         $terms = array_filter($terms);
     541                        $terms = array_filter( $terms );
    540542
    541543                        $terms = "'" . implode( "','", $terms ) . "'";
    542544                        $sql = "
     
    593595 * @return mixed|null|WP_Error Term Row from database. Will return null if $term is empty. If taxonomy does not
    594596 * exist then WP_Error will be returned.
    595597 */
    596 function &get_term($term, $taxonomy, $output = OBJECT, $filter = 'raw') {
     598function &get_term( $term, $taxonomy, $output = OBJECT, $filter = 'raw' ) {
    597599        global $wpdb;
    598600        $null = null;
    599601
    600         if ( empty($term) ) {
    601                 $error = new WP_Error('invalid_term', __('Empty Term'));
     602        if ( empty( $term ) ) {
     603                $error = new WP_Error( 'invalid_term', __( 'Empty Term' ) );
    602604                return $error;
    603605        }
    604606
    605         if ( ! taxonomy_exists($taxonomy) ) {
    606                 $error = new WP_Error('invalid_taxonomy', __('Invalid Taxonomy'));
     607        if ( ! taxonomy_exists( $taxonomy ) ) {
     608                $error = new WP_Error( 'invalid_taxonomy', __( 'Invalid Taxonomy' ) );
    607609                return $error;
    608610        }
    609611
    610         if ( is_object($term) && empty($term->filter) ) {
    611                 wp_cache_add($term->term_id, $term, $taxonomy);
     612        if ( is_object( $term ) && empty( $term->filter ) ) {
     613                wp_cache_add( $term->term_id, $term, $taxonomy );
    612614                $_term = $term;
    613615        } else {
    614                 if ( is_object($term) )
     616                if ( is_object( $term ) )
    615617                        $term = $term->term_id;
    616618                $term = (int) $term;
    617                 if ( ! $_term = wp_cache_get($term, $taxonomy) ) {
    618                         $_term = $wpdb->get_row( $wpdb->prepare( "SELECT t.*, tt.* FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy = %s AND t.term_id = %s LIMIT 1", $taxonomy, $term) );
     619                if ( ! $_term = wp_cache_get( $term, $taxonomy ) ) {
     620                        $_term = $wpdb->get_row( $wpdb->prepare( "SELECT t.*, tt.* FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy = %s AND t.term_id = %s LIMIT 1", $taxonomy, $term ) );
    619621                        if ( ! $_term )
    620622                                return $null;
    621                         wp_cache_add($term, $_term, $taxonomy);
     623                        wp_cache_add( $term, $_term, $taxonomy );
    622624                }
    623625        }
    624626
    625         $_term = apply_filters('get_term', $_term, $taxonomy);
    626         $_term = apply_filters("get_$taxonomy", $_term, $taxonomy);
    627         $_term = sanitize_term($_term, $taxonomy, $filter);
     627        $_term = apply_filters( 'get_term', $_term, $taxonomy );
     628        $_term = apply_filters( "get_$taxonomy", $_term, $taxonomy );
     629        $_term = sanitize_term( $_term, $taxonomy, $filter );
    628630
    629631        if ( $output == OBJECT ) {
    630632                return $_term;
    631633        } elseif ( $output == ARRAY_A ) {
    632                 $__term = get_object_vars($_term);
     634                $__term = get_object_vars( $_term );
    633635                return $__term;
    634636        } elseif ( $output == ARRAY_N ) {
    635                 $__term = array_values(get_object_vars($_term));
     637                $__term = array_values( get_object_vars( $_term ) );
    636638                return $__term;
    637639        } else {
    638640                return $_term;
     
    666668 * @param string $filter Optional, default is raw or no WordPress defined filter will applied.
    667669 * @return mixed Term Row from database. Will return false if $taxonomy does not exist or $term was not found.
    668670 */
    669 function get_term_by($field, $value, $taxonomy, $output = OBJECT, $filter = 'raw') {
     671function get_term_by( $field, $value, $taxonomy, $output = OBJECT, $filter = 'raw' ) {
    670672        global $wpdb;
    671673
    672         if ( ! taxonomy_exists($taxonomy) )
     674        if ( ! taxonomy_exists( $taxonomy ) )
    673675                return false;
    674676
    675677        if ( 'slug' == $field ) {
    676678                $field = 't.slug';
    677                 $value = sanitize_title($value);
    678                 if ( empty($value) )
     679                $value = sanitize_title( $value );
     680                if ( empty( $value ) )
    679681                        return false;
    680682        } else if ( 'name' == $field ) {
    681683                // Assume already escaped
    682                 $value = stripslashes($value);
     684                $value = stripslashes( $value );
    683685                $field = 't.name';
    684686        } else {
    685                 return get_term( (int) $value, $taxonomy, $output, $filter);
     687                return get_term( (int) $value, $taxonomy, $output, $filter );
    686688        }
    687689
    688         $term = $wpdb->get_row( $wpdb->prepare( "SELECT t.*, tt.* FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy = %s AND $field = %s LIMIT 1", $taxonomy, $value) );
     690        $term = $wpdb->get_row( $wpdb->prepare( "SELECT t.*, tt.* FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy = %s AND $field = %s LIMIT 1", $taxonomy, $value ) );
    689691        if ( !$term )
    690692                return false;
    691693
    692         wp_cache_add($term->term_id, $term, $taxonomy);
     694        wp_cache_add( $term->term_id, $term, $taxonomy );
    693695
    694         $term = apply_filters('get_term', $term, $taxonomy);
    695         $term = apply_filters("get_$taxonomy", $term, $taxonomy);
    696         $term = sanitize_term($term, $taxonomy, $filter);
     696        $term = apply_filters( 'get_term', $term, $taxonomy );
     697        $term = apply_filters( "get_$taxonomy", $term, $taxonomy );
     698        $term = sanitize_term( $term, $taxonomy, $filter );
    697699
    698700        if ( $output == OBJECT ) {
    699701                return $term;
    700702        } elseif ( $output == ARRAY_A ) {
    701                 return get_object_vars($term);
     703                return get_object_vars( $term );
    702704        } elseif ( $output == ARRAY_N ) {
    703                 return array_values(get_object_vars($term));
     705                return array_values( get_object_vars( $term ) );
    704706        } else {
    705707                return $term;
    706708        }
     
    727729 * @return array|WP_Error List of Term Objects. WP_Error returned if $taxonomy does not exist
    728730 */
    729731function get_term_children( $term_id, $taxonomy ) {
    730         if ( ! taxonomy_exists($taxonomy) )
    731                 return new WP_Error('invalid_taxonomy', __('Invalid Taxonomy'));
     732        if ( ! taxonomy_exists( $taxonomy ) )
     733                return new WP_Error( 'invalid_taxonomy', __( 'Invalid Taxonomy' ) );
    732734
    733735        $term_id = intval( $term_id );
    734736
    735         $terms = _get_term_hierarchy($taxonomy);
     737        $terms = _get_term_hierarchy( $taxonomy );
    736738
    737         if ( ! isset($terms[$term_id]) )
     739        if ( ! isset( $terms[$term_id] ) )
    738740                return array();
    739741
    740742        $children = $terms[$term_id];
    741743
    742744        foreach ( (array) $terms[$term_id] as $child ) {
    743                 if ( isset($terms[$child]) )
    744                         $children = array_merge($children, get_term_children($child, $taxonomy));
     745                if ( isset( $terms[$child] ) )
     746                        $children = array_merge( $children, get_term_children( $child, $taxonomy ) );
    745747        }
    746748
    747749        return $children;
     
    769771function get_term_field( $field, $term, $taxonomy, $context = 'display' ) {
    770772        $term = (int) $term;
    771773        $term = get_term( $term, $taxonomy );
    772         if ( is_wp_error($term) )
     774        if ( is_wp_error( $term ) )
    773775                return $term;
    774776
    775         if ( !is_object($term) )
     777        if ( !is_object( $term ) )
    776778                return '';
    777779
    778         if ( !isset($term->$field) )
     780        if ( !isset( $term->$field ) )
    779781                return '';
    780782
    781         return sanitize_term_field($field, $term->$field, $term->term_id, $taxonomy, $context);
     783        return sanitize_term_field( $field, $term->$field, $term->term_id, $taxonomy, $context );
    782784}
    783785
    784786/**
     
    800802function get_term_to_edit( $id, $taxonomy ) {
    801803        $term = get_term( $id, $taxonomy );
    802804
    803         if ( is_wp_error($term) )
     805        if ( is_wp_error( $term ) )
    804806                return $term;
    805807
    806         if ( !is_object($term) )
     808        if ( !is_object( $term ) )
    807809                return '';
    808810
    809         return sanitize_term($term, $taxonomy, 'edit');
     811        return sanitize_term( $term, $taxonomy, 'edit' );
    810812}
    811813
    812814/**