programing

permalink(예쁜 URL)에서 게시 ID를 얻는 방법

newstyles 2023. 3. 5. 09:39

permalink(예쁜 URL)에서 게시 ID를 얻는 방법

permalink(예쁜 URL)에서 게시 ID를 얻는 방법

그럼 괜찮겠지?url_to_postid()[documentation]를 참조해 주세요.작년에 내 플러그인에 썼는데, 아주 잘 작동해.

전용 (& 문서화된) 기능이 있습니다.

get_page_by_path( $page_path, $output, $post_type );

지정된 경로를 통해 페이지를 검색합니다.

어디에$page_path

[...] 'pagename' 쿼리와 동일한 값을 지정합니다(예: 'index.dex?pagename=parent-page/sub-page).

"Function Reference/Get page by path" 참조

예:

// Assume 'my_permalink' is a post.
// But all types are supported: post, page, attachment, custom post type, etc.
// See http://codex.wordpress.org/Post_Types
get_page_by_path('my_permalink', OBJECT, 'post');

2022년 갱신

url_to_postid( string $url )

참고: http://codex.wordpress.org/Function_Reference/url_to_postid

url_to_postid()현재로서3.7.0: 이 함수는 커스텀 투고 타입을 지원합니다(Trac 티켓 참조).#19744,#25659).

사용하세요

  $postid = url_to_postid( $url );

첨부 파일의 ID를 검색합니다.

제공된 URL은 다음 형식이어야 합니다.example.com/?attachment_id=N풀 URL 에서는 동작하지 않고, 풀 URL 로부터 ID 를 취득합니다.

저는 멀티사이트 WP를 가지고 있기 때문에 어떤 이유로 블로그를 검색하면url_to_postid()다른 블로그에서도 같은 타입의 투고에서는 동작합니다만, 다른 블로그에서는 동작하지 않습니다.get_page_by_path()매력적으로 작용합니다.그래서 이렇게 만들었어요. 완벽하진 않을 수도 있지만요.

$parsed_url = wp_parse_url( $url ); // Parse URL
$slug = substr($parsed_url['path'], 1 ); // Trim slash in the beginning

$post_id = url_to_postid( $slug ); // Attempt to get post ID

if ( ! $post_id ) { // If it didn't work try to get it manually from DB
    $post_query_result = 
        $wpdb->get_row("SELECT ID FROM {$wpdb->prefix}posts WHERE post_name = '{$slug}'");
    $analog_id = (int) $post_query_result->ID;
}

이것도 시도해 보세요.

$post = get_page_by_path('cat',OBJECT,'animal'); 

찾고 있는 것은 고양이= 퍼멀링크, 동물은 커스텀 포스트 타입입니다.

언급URL : https://stackoverflow.com/questions/4075064/how-to-get-post-id-from-permalink-pretty-url