Intereting Posts
Показывать рекламу по местоположению Переписывать URL-адрес WordPress не работает Показать размер пользовательского изображения меньше в редакторе Фильтрация WP_Query Почему wp перенаправляет меня на wp-login.php, когда я перехожу к переписанному URL-адресу wp-admin? Проблема миграции Код отслеживания Google Analytics на одной странице? Создать короткий код в WordPress, используя одну переменную в 3 функциях? использование изображений в следующей / предыдущей_поставке Установка плагина WordPress Как запрашивать сообщения с определенными метаданными и выводить данные Как WordPress обрабатывает ошибки блокировки строк MySQL? Содержимое домашней страницы отображается на других страницах, но на этих страницах контент должен быть разным Создание «огороженного сада» комментариев Пользовательский метабокс, вызывающий ошибку: «Вы уверены, что хотите это сделать? Пожалуйста, попробуйте еще раз."

Как предотвратить дублирование пули для wp_insert_post?

У меня есть функция, которая создает страницу, когда я создаю сообщение (чтобы построить деревья отношений родитель-потомок).

Я использую $ title of post для создания страницы, и это также создает дубликат. Есть ли способ немного изменить слизню, чтобы сделать его уникальным? Как я могу заверить, что новый слизень не помешает исходному сообщению?

Если вы используете wp_insert_post , он должен вычислить уникальный почтовый пул для вас. Если вы не используете wp_insert_post , попробуйте использовать wp_unique_post_slug . Если ни один из них не работает для вас, вы можете просто попробовать -page или к post_name (slug) новой страницы перед ее вставкой.

WordPress выполняет проверку уникальности почтовых сообщений на уровне приложений – это не похоже на уникальный индекс на wp_posts.post_name . Так, например, если вы находитесь внутри транзакции, в которой вы одновременно создаете два сообщения, проверки на уникальность терпят неудачу. Также возможно, что вы могли бы создать какое-то состояние гонки, в которое одновременно вставляются две записи, и проверка уникальности обоих слизней завершится неудачей.

Я думаю, WP автоматически добавляет число в конце, если повтор повторяется.

Из моего опыта требование, как правило, наоборот – достижение тех же слизняков, когда WP упорно отказывается генерировать их. 🙂

В нескольких словах slug может перекрываться между иерархическими и неиерархическими типами сообщений, но не внутри них отдельно. Поскольку в вашем случае используются пост (неиерархические) и страницы (иерархические), WP с радостью разрешает повторное использование пула.

Если вы хотите вручную заставить WP удалить дубликат страницы, ваш лучший вариант, вероятно, заставит проверку дублирования работать с ошибкой и запускать числовую суффиксную логику. Посмотрите на источник wp_unique_post_slug() который можно выполнить с помощью следующего фильтра:

 apply_filters( 'wp_unique_post_slug_is_bad_hierarchical_slug', false, $slug, $post_type, $post_parent )