Intereting Posts
PHP Примечание: Неопределенное смещение: 0 Как делать еженедельные действия? Как WordPress прикрепляет свои Избранные изображения сообщениями? Как удалить «http: //» из network_site_url? Какой крючок для фильтрации всех текстов сайта? Загрузка пользовательского js-файла на странице администратора через плагин WP Ajax на загрузке страницы не работает на bluehost, но работал над Godaddy Скрыть окно с пользовательским типом сообщения? Как переопределить родительские функции в дочерних темах? CSS сохранен и установлен в очередь, но WordPress не загружает текст css, только файл Отключить внешний (сторонний) CALL (изображения, шрифты ..) в Dashboard Дополнительный заголовок с этой функцией wp_list_pages Лучший способ справиться с отсутствием заголовков в микроблоге Использование WordPress в качестве библиотеки документов wordpress очень быстрая загрузка запроса ajax двумя способами

wp_insert_post нарушает правила перезаписи

Я использую wp_insert_post для программного добавления контента на сайт. Это отлично работает с сообщениями, категориями и тегами, но не со страницами.

Когда я пытаюсь добавить страницу (т. Е. Post с post_type = page), правила перезаписи не будут правильно восстановлены (или что-то происходит с ними после wp_insert_post ). В частности, правила, связанные с URL-адресами и тегами, теряются, как указано ниже:

 [category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$] => index.php?category_name=$matches[1]&feed=$matches[2] [category/(.+?)/(feed|rdf|rss|rss2|atom)/?$] => index.php?category_name=$matches[1]&feed=$matches[2] [category/(.+?)/page/?([0-9]{1,})/?$] => index.php?category_name=$matches[1]&paged=$matches[2] [category/(.+?)/?$] => index.php?category_name=$matches[1] [tag/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$] => index.php?tag=$matches[1]&feed=$matches[2] [tag/([^/]+)/(feed|rdf|rss|rss2|atom)/?$] => index.php?tag=$matches[1]&feed=$matches[2] 

…и т.д

Это означает, что URL-адреса архива тегов и категорий разбиваются. Просто нажмите «Настройки»> «Постоянная ссылка», чтобы восстановить их. Попробовали исправить с помощью $wp_rewrite->flush_rules() сразу после wp_insert_post но это не wp_insert_post проблему …

Solutions Collecting From Web of "wp_insert_post нарушает правила перезаписи"

Трудно сказать, какова ваша проблема, не видя больше кода, но я бы поспорил, что ваша проблема будет решена, если вы добавите это после вставки вашего сообщения:

 do_action('save_post', $post_ID, $post); 

WordPress использует это действие, чтобы очистить кеш, переписать правила и т. Д. Обязательно используйте соответствующие переменные для $ post_ID и $ post, конечно. Для хорошей меры вы также должны добавить:

 do_action('wp_insert_post', $post_ID, $post); 

Просто так, что любые плагины, темы и т. Д., Которые используют этот крючок, будут знать, что они делают.

Приветствия ~

Я столкнулся с той же проблемой, что и я. Я использовал wp_insert_post в обратном вызове ajax. Поле post_name закрывалось. Я в конце концов проследил его обратно, вызвав wp_publish_post вскоре после этого. Я прокомментировал публикацию и установил post_status перед вставкой, и все это работало лучше.