Обрезка слага и конфликт уникальности
-
Добрый день! Спасибо за отличный плагин.
Столкнулся с тем, что после добавления кода для уменьшения количества слов в слаге не срабатывает проверка на уникальность слага ни из этого кода ни в плагине. И в итоге появилась возможность плодить записи с одинаковыми слагами.
-Можете порекомендовать как решить эту проблему?
-Не планируете ли добавить в плагин возможность ограничивать количество слов/символов в слаге, дабы избежать подобных конфликтов в будущем?Код даю ниже:
function pm_trim_native_slug($slug, $post_ID, $post_status, $post_type, $post_parent) { global $wpdb; $max_words = 5; // Limit the number of words to 5; This value can be changed. $words = explode('-', $slug); if(count($words) > $max_words) { $slug = implode("-", array_slice($words, 0, $max_words)); // Make the slugs unique $check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND ID != %d LIMIT 1"; $post_name_check = $wpdb->get_var($wpdb->prepare($check_sql, $slug, $post_ID)); if($post_name_check) { $suffix = 2; do { $alt_post_name = _truncate_post_slug($slug, 200 - (strlen($suffix) + 1)) . "-$suffix"; $post_name_check = $wpdb->get_var($wpdb->prepare($check_sql, $alt_post_name, $post_type, $post_ID, $post_parent)); $suffix++; } while ($post_name_check); $slug = $alt_post_name; } } return $slug; } add_filter('wp_unique_post_slug', 'pm_trim_native_slug', 99, 5);
Viewing 2 replies - 1 through 2 (of 2 total)
Viewing 2 replies - 1 through 2 (of 2 total)
- The topic ‘Обрезка слага и конфликт уникальности’ is closed to new replies.