term_exists
Check if Term exists.
Description
Formerly is_term(…)
, introduced in 2.3.0.
Parameters (3)
- 0. $term (int|string)
- The term to check. Accepts term ID, slug, or name.
- 1. $taxonomy — Optional. (string) =>
''
- The taxonomy name to use
- 2. $parent — Optional. (null) =>
null
- ID of parent term under which to confine the exists search.
Usage
if ( !function_exists( 'term_exists' ) ) { require_once ABSPATH . WPINC . '/taxonomy.php'; } // The term to check. Accepts term ID, slug, or name. $term = null; // The taxonomy name to use $taxonomy = ''; // Optional. ID of parent term under which to confine the exists search. $parent = null; // NOTICE! Understand what this does before running. $result = term_exists($term, $taxonomy, $parent);
Defined (1)
The function is defined in the following location(s).
- /wp-includes/taxonomy.php
- 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) )
- 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;
- if ( $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) )
- 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);
- }
- if ( $result = $wpdb->get_var( $wpdb->prepare("SELECT term_id FROM $wpdb->terms as t WHERE $where $orderby $limit", $where_fields) ) )
- return $result;
- return $wpdb->get_var( $wpdb->prepare("SELECT term_id FROM $wpdb->terms as t WHERE $else_where $orderby $limit", $else_where_fields) );
- }