2010-04-28 4 views
1

내 테마에 게시 양식이 있습니다. 거기에 wp_insert_post를 사용했습니다. 내 코드는 다음과 같습니다.WP_Insert_Post 및 GUID 문제 [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가/category/id와 같으면 http://www.example.com/uncategorized/1이됩니다. 그래서 문제는, 내가 WordPress의 관리자 패널을 통해 게시 할 경우 게시물의 GUID는 http://www.example.com?p=1입니다. 그래서 내 post database GUID가 혼란스러워집니다. 왜냐하면 permalinks_structure를 바꾸고 싶다면 외부 양식에서 오는 게시물이 구조를 따를 것이기 때문입니다.

내가하고 싶은 것은, 내가 GUID를 얻을 I은 관리자 패널을 통해 게시 된 것을 좋아합니다 http://www.example.com?p=1

내가 그것을 어떻게 할 수 있습니까? 제발 저를 지적하십시오. 고맙습니다.

답변

1

짧은 답변은 WordPress의 게시물 GUID에 대해 걱정하지 않는 것입니다. 여기 게시물의 GUID의()에 타당성을 논의 스레드는 다음과 같습니다 http://www.mail-archive.com/[email protected]/msg12434.html

혹시 게시물의 URL이 필요 경우, get_permalink() 함수를 사용한다. 이것은 항상 현재 영구 링크 구조를 존중하고,

0

반환 번호를 포스트의 URL

(INT | WP_Error) 얻을 수있는 가장 안전한 방법입니다 성공의 포스트 ID는. 실패시 값 0 또는 WP_Error.

그래서 .. 정수를 확인하고 URL을 가져 오려면 $ url = get_permalink ($ post_id);

guid에 대한 직접 호출을 무시합니다.