wpseek.com
A WordPress-centric search engine for devs and theme authors
term_exists › WordPress Function
Since3.0.0
Deprecatedn/a
› term_exists ( $term, $taxonomy = '', $parent = null )
Parameters: (3) |
|
Returns: |
|
Defined at: |
|
Codex: |
Determines whether a taxonomy term exists.
Formerly is_term(), introduced in 2.3.0. For more information on this and similar theme functions, check out the {@link Conditional Tags} article in the Theme Developer Handbook.Source
function term_exists( $term, $taxonomy = '', $parent = null ) { global $wpdb; $select = "SELECT term_id FROM $wpdb->terms as t WHERE "; $tax_select = "SELECT tt.term_id, tt.term_taxonomy_id FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy as tt ON tt.term_id = t.term_id WHERE "; if ( is_int( $term ) ) { if ( 0 === $term ) { return 0; } $where = 't.term_id = %d'; if ( ! empty( $taxonomy ) ) { // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders.ReplacementsWrongNumber return $wpdb->get_row( $wpdb->prepare( $tax_select . $where . ' AND tt.taxonomy = %s', $term, $taxonomy ), ARRAY_A ); } else { return $wpdb->get_var( $wpdb->prepare( $select . $where, $term ) ); } } $term = trim( wp_unslash( $term ) ); $slug = sanitize_title( $term ); $where = 't.slug = %s'; $else_where = 't.name = %s'; $where_fields = array( $slug ); $else_where_fields = array( $term ); $orderby = 'ORDER BY t.term_id ASC'; $limit = 'LIMIT 1'; if ( ! empty( $taxonomy ) ) { if ( is_numeric( $parent ) ) { $parent = (int) $parent; $where_fields[] = $parent; $else_where_fields[] = $parent; $where .= ' AND tt.parent = %d'; $else_where .= ' AND tt.parent = %d'; } $where_fields[] = $taxonomy; $else_where_fields[] = $taxonomy; $result = $wpdb->get_row( $wpdb->prepare( "SELECT tt.term_id, tt.term_taxonomy_id FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy as tt ON tt.term_id = t.term_id WHERE $where AND tt.taxonomy = %s $orderby $limit", $where_fields ), ARRAY_A ); if ( $result ) { return $result; } return $wpdb->get_row( $wpdb->prepare( "SELECT tt.term_id, tt.term_taxonomy_id FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy as tt ON tt.term_id = t.term_id WHERE $else_where AND tt.taxonomy = %s $orderby $limit", $else_where_fields ), ARRAY_A ); } // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare $result = $wpdb->get_var( $wpdb->prepare( "SELECT term_id FROM $wpdb->terms as t WHERE $where $orderby $limit", $where_fields ) ); if ( $result ) { return $result; } // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare return $wpdb->get_var( $wpdb->prepare( "SELECT term_id FROM $wpdb->terms as t WHERE $else_where $orderby $limit", $else_where_fields ) ); }