Intereting Posts
Пользовательский параметр темы: задайте флажки по умолчанию Изменение таксономических страниц для исключения элементов в таксономиях детей phpMyAdmin отображает ошибку при импорте базы данных Удалите кнопки быстрого перехода, но не редактор и вкладки Visual / Text Показать все сообщения, которые используют пользовательскую таксономию Как использовать Amazon Elastic Transcoder из WordPress с помощью AWS SDK для PHP? Я не могу изменить ссылку «Продолжить чтение …» of the_excerpt Как ограничить глубину меню WordPress в панели администратора Сообщения и страница дважды отображаются Цена крюка для woocommerce в выпуске бэкэнда Получить изображения галереи из идентификатора страницы Можно ли вызвать файл шаблона внутри редактора wysiwyg? И как? Очистка осиротевших wp_terms и wp_term_taxonomy Создайте больше держателей виджетов, как активные виджеты и неактивные виджеты как авторы могут определять пользовательские страницы?

wp_insert_post генерирует смешанные постоянные ссылки

Я пишу плагин, который использует wp_insert_post() чтобы вставлять сообщения программно, и моя постоянная ссылка равна /%category%/%postname%/

Из всего поставленного сообщения wp_posts.guid показывает 2 типа вывода. Некоторая должность будет следующей /%category%/%postname%/ и некоторой /?p=POST_ID . Когда я использую get_permalink() , я также получаю смешанные результаты, похожие на то, что хранится в wp_posts.guid

Интересно, что вызывает это и как я могу заставить все сообщения следовать моей конфигурации постоянной ссылки?

В то же время, как заставить всю ссылку /p=POST_ID перенаправлять в соответствии с настройкой постоянной ссылки, которая в этом случае /%category%/%postname%/ ?

спасибо

EDIT: Позже я узнал, что те, у которых есть постоянная ссылка по умолчанию, фактически являются «черновыми» сообщениями. Извините за путаницу.

Solutions Collecting From Web of "wp_insert_post генерирует смешанные постоянные ссылки"

Permalinks в WP фактически не имеют ничего общего с wp_posts.guid . Я считаю, что исторически они это сделали и были оставлены из-за RSS-каналов – т. Е. Их изменение заставило бы людей питаться думать, что сообщения не были прочитаны.

Ваша постоянная ссылка хранится в вашей таблице wp_options (добавьте echo '<pre>'; print_r($wp_rewrite); echo '</pre>'; в ваш код, чтобы увидеть правила).

get_permalink() следует использовать в Loop, если вы не get_permalink(15) идентификатор страницы ( get_permalink(15) ), так что это может вызвать проблему.

Могу ли я также предположить, что вы сбросите свои постоянные ссылки по умолчанию, сохраните их, а затем установите для них «День и имя», сохраните их и посмотрите, работает ли это. Причина этого – очистить ваши правила, а затем создать правильные правила. Я предлагаю «День и имя», поскольку в текущей версии WP (3.3.1) есть проблема, когда установка постоянных ссылок на «Postname» неправильно создает правила.

Если приведенное выше дает вам рабочие правила, попробуйте свою собственную структуру, и она должна работать.