term_exists()
term_exists( int|string $term, string $taxonomy = ”, in…
term_exists( int|string $term, string $taxonomy = ”, int $parent = null )
确定分类术语是否存在。
Determines whether a taxonomy term exists.
目录锚点:#说明#参数#源码#笔记
说明(Description)
以前是_term(),在2.3.0中引入。有关此主题函数和类似主题函数的更多信息,请参阅主题开发人员手册中的条件标记文章。
参数(Parameters)
参数 | 类型 | 说明 |
---|---|---|
$term | (int | string) | 检查术语。接受术语ID、slug或name。 |
$taxonomy | (string) | 要使用的分类名称。 |
$parent | (int) | 限制exists搜索的父项的ID。 |
源码(Source)
/** * Check if Term exists. * * Formerly is_term(), introduced in 2.3.0. * * @since 3.0.0 * * @global wpdb $wpdb WordPress database abstraction object. * * @param int|string $term The term to check * @param string $taxonomy The taxonomy name to use * @param int $parent Optional. ID of parent term under which to confine the exists search. * @return mixed Returns null if the term does not exist. Returns the term ID * if no taxonomy is specified and the term ID exists. Returns * an array of the term ID and the term taxonomy ID the taxonomy * is specified and the pairing exists. */ 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) ); }
更新版本 | 源码位置 | 使用 | 被使用 |
---|---|---|---|
3.0.0 | wp-includes/taxonomy.php | 8 | 15 |
笔记(Notes)
返回的数组
类别:WordPress 函数手册、
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!