Intereting Posts
Какой крючок следует использовать для этого сценария в отношении процесса регистрации и обновления учетной записи / профиля? Перечислить один пост только из каждой подкатегории с помощью get_posts? Заголовок с контентом Woocommerce: пользовательский цикл на вкладках продуктов перерывает вкладку отзывов Исключить текущий липкий пост Как удалить плагин Hello Dolly автоматически? Отображение пользовательских типов сообщений по категориям Как вернуть результаты get_posts () в явно определенном порядке Прерванное обновление до 4.5.1 Использование переходных процессов для хранения captchas Настройки плагина не сохраняются и 404 генерируется при отправке Экспорт всех сообщений для импорта в качестве товаров Вставка конкретной информации в сообщения определенной категории Как настроить структуру постоянной ссылки для пользовательского типа сообщения Перенести сообщение WordPress на сайт RoR: является ли REST Api единственным и / или лучшим решением?

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» неправильно создает правила.

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