2010-04-28 2 views
1

У меня есть форма для отправки по моей теме. Я использовал wp_insert_post. Мой код выглядит так:WP_Insert_Post и GUID Issue [Wordpress]

$post = array(
     'ID' => '', 
     'post_author' => $post_author, 
     'post_category' => $post_category, 
     'post_content' => $post_content, 
     'post_title' => $post_title, 
     'post_status' => 'publish', 
    ); 

    $post_id = wp_insert_post($post); 
    $fullpost = get_post($post_id); 

    wp_redirect($fullpost->guid); 

Все работает нормально. Но когда он вставлен в базу данных, в поле GUID формат записи похож на этот permalinks_structure/id. Поэтому, если моя permalinks_structure похожа на категорию/id, она становится как http://www.example.com/uncategorized/1. Поэтому проблема заключается в том, что если я отправляю через панель администратора Wordpress, GUID сообщения - http://www.example.com?p=1. Таким образом, мой GUID почтовой базы данных становится беспорядочным, потому что, если я хочу изменить permalinks_structure, сообщение, которое будет из внешней формы, будет следовать структуре.

То, что я хочу сделать, я хочу, чтобы получить GUID нравится, что я отправил через панель администратора, которая http://www.example.com?p=1

Как я могу это сделать? Пожалуйста, укажи мне. Спасибо.

ответ

1

Я думаю, что короткий ответ - не беспокоиться о GUID сообщения в WordPress. Вот нить обсуждения справедливости (в) от GUID к данному сообщению: http://www.mail-archive.com/[email protected]/msg12434.html

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

0

Return #

(интермедиат | WP_Error) Почте ID на успех. Значение 0 или WP_Error при ошибке.

Итак .. проверьте на целое число и сделайте это, чтобы получить URL-адрес $ url = get_permalink ($ post_id);

Это обходит прямой вызов руководству

Смежные вопросы