Function Reference: geodir_update_term_slug
Summary
Update term slug.
Global Values
- $wpdb
- (object) (required) WordPress Database object.
- Default: None
- $plugin_prefix
- (string) (required) Geodirectory plugin table prefix.
- Default: None
- $table_prefix
- (string) (required) WordPress Database Table prefix.
- Default: None
Package
GeoDirectory
Parameters
- $term_id
- (int|string) (required) The term ID.
- Default: None
- $tt_id
- (int) (required) term Taxonomy ID.
- Default: None
- $taxonomy
- (string) (required) Taxonomy slug.
- Default: None
Change Log
Since: 1.0.0
1.5.3 Modified to update tag in detail table when tag updated.
Filters
‘geodir_term_slug_is_exists’ [Line: 1751]
‘geodir_term_slug_is_exists’ [Line: 1760]
Source File
geodir_update_term_slug() is located in geodirectory_hooks_actions.php [Line: 1733]
Source Code
function geodir_update_term_slug($term_id, $tt_id, $taxonomy) { global $wpdb, $plugin_prefix, $table_prefix; $tern_data = get_term_by('id', $term_id, $taxonomy); $slug = $tern_data->slug; /** * Filter if a term slug exists. * * @since 1.0.0 * @package GeoDirectory * @param bool $bool Default: false. * @param string $slug The term slug. * @param int $term_id The term ID. */ $slug_exists = apply_filters('geodir_term_slug_is_exists', false, $slug, $term_id); if ($slug_exists) { $suffix = 1; do { $new_slug = _truncate_post_slug($slug, 200 - (strlen($suffix) + 1)) . "-$suffix"; /** This action is documented in geodirectory_hooks_actions.php */ $term_slug_check = apply_filters('geodir_term_slug_is_exists', false, $new_slug, $term_id); $suffix++; } while ($term_slug_check && $suffix < 100); $slug = $new_slug; //wp_update_term( $term_id, $taxonomy, array('slug' => $slug) ); $wpdb->query($wpdb->prepare("UPDATE " . $table_prefix . "terms SET slug=%s WHERE term_id=%d", array($slug, $term_id))); } // Update tag in detail table. $taxonomy_obj = get_taxonomy($taxonomy); $post_type = !empty($taxonomy_obj) ? $taxonomy_obj->object_type[0] : NULL; $post_types = geodir_get_posttypes(); if ($post_type && in_array($post_type, $post_types) && $post_type . '_tags' == $taxonomy) { $posts_obj = $wpdb->get_results($wpdb->prepare("SELECT object_id FROM " . $wpdb->term_relationships . " WHERE term_taxonomy_id = %d", array($tt_id))); if (!empty($posts_obj)) { foreach ($posts_obj as $post_obj) { $post_id = $post_obj->object_id; $raw_tags = wp_get_object_terms($post_id, $post_type . '_tags', array('fields' => 'names')); $post_tags = !empty($raw_tags) ? implode(',', $raw_tags) : ''; $listing_table = $plugin_prefix . $post_type . '_detail'; $wpdb->query($wpdb->prepare("UPDATE " . $listing_table . " SET post_tags=%s WHERE post_id =%d", array($post_tags, $post_id))); } } } }