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
'programing' 카테고리의 다른 글
스파크 시 json 문자열을 데이터 프레임으로 변환하는 방법 (0) | 2023.03.05 |
---|---|
Sinatra 기본 content_type 설정 (0) | 2023.03.05 |
Oracle REGEXP_LIKE 및 단어 경계 (0) | 2023.03.05 |
react-router v4에서 쿼리 문자열을 구문 분석하는 방법 (0) | 2023.03.05 |
Wordpress로 코멘트를 마크다운 형식으로 저장하려면 어떻게 해야 합니까? (0) | 2023.03.05 |